2011-11-19 28 views
3

我创建了一个C#4.0控制台应用程序。目标框架是.Net Framework 4客户端配置文件。我想统计我的cpu中的核心数量。为此,我创建了以下类:不兼容的参考:System.Management 4.0.0.0?

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,文化=中性公钥= b034543655555”是不符合.Net框架4客户端配置文件为了增加它您应该首先将项目的目标更改为兼容的框架。

其合理性检查我就在这里:http://msdn.microsoft.com/en-us/library/system.management.managementobjectsearcher.aspx

...和MSDN中明确指出System.Management 4.0.0.0与.Net框架4客户端配置文件兼容。

任何人都可以协助吗?

+1

恩的完整路径添加它,它也许可能有MSDN文档上的错误。 您是否尝试将项目目标更改为.NET Framework 4? – Otiel

+0

@sapbucket - 我创建了一个新的控制台项目,并能够添加它就好了。是否还有其他一些细节正在被遗漏? –

+1

PublicKeyToken错误,应该是b03f5f7f11d50a3a。不知道如何发生。 –

回答

0

尝试改变目标框架,以.NET框架4

有客户档案和完整的框架之间的差异。 客户端配置文件虽然在框架4中运行,但不包含所有对完整参考的引用。如果你的目标是说你的客户端将拥有“参考”列表中引用的所有系统.dll。我想这不是真的关于System.Management之一。

Differences between Microsoft .NET 4.0 full Framework and Client Profile

1

尝试使用浏览和dll