无法找到SystemManufacturers名称空间

时间:2014-01-23 00:37:54

标签: c# windows-8 windows-store-apps windows-8.1

我正在尝试添加对SystemManufacturers命名空间的引用,但我似乎无法弄清楚为什么我无法访问它。

API文档说它适用于Windows 8,但在创建Windows应用商店应用时不包含此命名空间,我也无法在Windows类库中引用它。

我在C:\ Windows \ System32中找到了System.Windows.Profile.SystemManufacturers.dll,但Visual Studio不允许我添加对它的引用说“请确保该文件可访问,并且它是一个有效的程序集或COM组件。“

之前有没有人遇到过这个或类似情况?

2 个答案:

答案 0 :(得分:1)

使用此命名空间require special permissions

This document describes it

  

仅在设备中声明为特权的应用程序   PC容器的元数据可以访问此API。列表或   管理PC容器的设备元数据中的特权应用程序   由OEM。有关如何声明特权的更多信息   设备元数据中的应用程序,请参阅特权应用程序   元素和在设备元数据创作中指定应用程序   特权应用程序下的向导。系统序列号数据   将从序列号字段(偏移07h)中检索   系统中描述的系统信息(类型1)结构   管理BIOS(SMBIOS)参考6规范。 OEM应该确保   在此字段中正确指定了序列号。

答案 1 :(得分:0)

该错误意味着您尝试引用非托管(也称为本机)DLL。对此的解决方案是对user32.dll

使用DLLImport
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

您可以阅读有关普通DLL和.NET DLL here之间差异的更多信息。