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クライアントプロファイルと互換性があることを明確に示しています。
誰かが助けることができますか?