因此,导入 C# 类后我得到了完整的错误列表。我搜索了该错误并得到了大量的点击,但是他们都说只需添加存在的 System.Management 命名空间,但它却给出了这些错误。
类似的问题。没有解决方案对我有用:使用 WMI ManagementObjectSearcher 缺少指令或程序集引用? https://stackoverflow.com/questions/3692384/missing-directive-or-assembly-reference-using-wmi-managementobjectsearcher
命名空间“System.Management”中不存在“ManagementClass” https://stackoverflow.com/questions/1798152/managementclass-does-not-exist-in-the-namespace-system-management
找不到类型或命名空间(是否缺少 using 指令或程序集引用?) https://stackoverflow.com/questions/2721351/the-type-or-namespace-cannot-be-found-are-you-missing-a-using-directive-or-an-a
Class:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Net;
using System.Xml;
using System.IO.Compression;
using System.Runtime.InteropServices;
using System.Threading;
using System.Management;
using Microsoft.Win32;
using System.Net.NetworkInformation;
using System.Security.Cryptography;
namespace PCID_Grabber
{
public class PCID
{
public static string GetCPUId()
{
#region CPUid
string cpuInfo = String.Empty;
string temp = String.Empty;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo == String.Empty)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
}
return cpuInfo;
#endregion
}
public static string GetMotherBoardID()
{
#region Mboard
ManagementObjectCollection mbCol = new ManagementClass("Win32_BaseBoard").GetInstances();
ManagementObjectCollection.ManagementObjectEnumerator mbEnum = mbCol.GetEnumerator();
mbEnum.MoveNext();
return ((ManagementObject)(mbEnum.Current)).Properties["SerialNumber"].Value.ToString();
#endregion
}
public static string GetMacAddress()
{
#region MacAddress
string macs = "";
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in interfaces)
{
PhysicalAddress pa = ni.GetPhysicalAddress();
macs += pa.ToString();
}
return macs;
#endregion
}
public static string GetVolumeSerial()
{
#region HD serial
string strDriveLetter = "";
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
try
{
if ((UInt16)mo["MediaType"] == 29)
{
String serial = mo["SerialNumber"].ToString().Trim();
if (!String.IsNullOrEmpty(serial))
{
strDriveLetter = (string)mo["SerialNumber"];
return strDriveLetter;
}
}
}
catch { }
}
return strDriveLetter;
#endregion
}
public static string GetGenericID()
{
#region UID
string ID = GetCPUId() + GetMotherBoardID() + GetMacAddress() + GetVolumeSerial();
HMACSHA1 hmac = new HMACSHA1();
hmac.Key = Encoding.ASCII.GetBytes(GetMotherBoardID());
hmac.ComputeHash(Encoding.ASCII.GetBytes(ID));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hmac.Hash.Length; i++)
{
sb.Append(hmac.Hash[i].ToString("X2"));
}
return sb.ToString();
#endregion
}
}
}
错误列表:
Error 1 The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 31 13 PCID Grabber
Error 2 The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 31 38 PCID Grabber
Error 5 The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 46 52 PCID Grabber
Error 8 The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 69 13 PCID Grabber
Error 9 The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 69 38 PCID Grabber
Error 7 The type or namespace name 'ManagementObject' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 49 22 PCID Grabber
Error 3 The type or namespace name 'ManagementObjectCollection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 32 13 PCID Grabber
Error 4 The type or namespace name 'ManagementObjectCollection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 46 13 PCID Grabber
Error 6 The type or namespace name 'ManagementObjectCollection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 47 13 PCID Grabber
Error 10 The type or namespace name 'ManagementObjectCollection' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Keanu\workspace\PCID Grabber\PCID Grabber\pcid.cs 70 13 PCID Grabber
您还需要向项目添加程序集引用。您需要参考System.Management
在您的项目中进行装配,否则using
语句将无法找到名称空间
- 右键单击您的项目
- 单击“添加参考...”
- 然后从“程序集”选项卡中选择“系统.管理”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)