C#错误 - 找不到命名空间ManagementClass,ManagementObject和ManagementObjectCollection

时间:2014-07-18 03:17:10

标签: c# .net namespaces

因此,我在导入C#类后得到了完整的错误列表。我搜索了错误并得到了大量的点击,但是他们都说要添加System.Management命名空间,但是它会产生这些错误。

类似的问题。没有解决方案适合我: Missing directive or assembly reference using WMI ManagementObjectSearcher?

'ManagementClass' does not exist in the namespace 'System.Management'

The type or namespace cannot be found (are you missing a using directive or an assembly reference?)

类别:

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

1 个答案:

答案 0 :(得分:14)

您还需要为项目添加程序集引用。您需要在项目中引用System.Management程序集,否则using语句将无法找到名称空间

  1. 右键单击您的项目
  2. 点击&#34;添加参考...&#34;
  3. 然后选择&#34; System.Management&#34;来自&#34; Assemblies&#34;标签
  4. enter image description here