4

C#4.0コンソールアプリケーションを作成しました。ターゲットフレームワークは、.NetFramework4クライアントプロファイルです。CPUのコア数を数えたい。これを行うために、次のクラスを作成しました。

internal class MultiThreading
{
    public int GetNumberOfCores()
    {
        var coreCount = 0;
        foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
            coreCount += int.Parse(item["NumberOfCores"].ToString());

        return coreCount;
    }
}

このコードが機能するには、System.Managementへの参照が必要です。ソリューションエクスプローラーでこれを行うには、プロジェクト参照->参照の追加を右クリックしました。ダイアログウィンドウが開き、System.Managementバージョン4.0.0.0を選択できます。ダイアログウィンドウに、4.0フレームワークを使用していることが示されます。ここまでは順調ですね。[追加]をクリックすると、次のメッセージが表示されます。

「System.Management、バージョン4.0.0.0、Culture = neutral、PublicKeyToken = b034543655555」は、.Net Framework 4クライアントプロファイルと互換性がありません。追加するには、最初にプロジェクトのターゲットを互換性のあるフレームワークに変更する必要があります。

健全性チェックとして、私はここに行きました:http: //msdn.microsoft.com/en-us/library/system.management.managementobjectsearcher.aspx

...そしてmsdnは、System.Management4.0.0.0が.NetFramework4クライアントプロファイルと互換性があることを明確に示しています。

誰かが助けることができますか?

4

2 に答える 2

1

ブラウズとdllのフルパスを使用して追加してみてください

于 2013-07-17T11:50:33.043 に答える
0

ターゲット フレームワークを .NET Framework 4 に変更してみてください。

Client Profile と完全なフレームワークには違いがあります。クライアント プロファイルは、フレームワーク 4 で実行されますが、完全なものへのすべての参照が含まれているわけではありません。また、クライアントが「参照」リストで参照されているすべてのシステム .dll を持っていると言っていると言っている場合。そして、System.Management についてはそうではないと思います。

Microsoft .NET 4.0 フル フレームワークとクライアント プロファイルの相違点

于 2012-10-19T15:38:23.283 に答える