1

私は持っているusing System.Management;

ただし、次のエラーが発生し続けます。

タイプまたは名前空間名「ManagementClass」が名前空間「System.Management」に存在しません (アセンブリ参照がありませんか?)

そのエラーが2回発生します。

私もこのエラーを受け取ります:

型または名前空間名 'ManagementObjectCollection' が名前空間 'System.Management' に存在しません (アセンブリ参照がありませんか?)

なぜこれが起こるのですか?

それが役立つ場合、これは私のコードです(StackOverflowから完全に取得しましたが、それでも私が使用しているコードです)

private string identifier(string wmiClass, string wmiProperty)
    //Return a hardware identifier
    {
        string result = "";
        System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
        System.Management.ManagementObjectCollection moc = mc.GetInstances();
        foreach (System.Management.ManagementObject mo in moc)
        {

            //Only get the first one
            if (result == "")
            {
                try
                {
                    result = mo[wmiProperty].ToString();
                    break;
                }
                catch
                {
                }
            }

        }
        return result;
    }

    private void getButton_Click(object sender, EventArgs e)
    {
        string modelNo = identifier("Win32_DiskDrive", "Model");
        string manufatureID = identifier("Win32_DiskDrive", "Manufacturer");
        string signature = identifier("Win32_DiskDrive", "Signature");
        string totalHeads = identifier("Win32_DiskDrive", "TotalHeads");
    }
4

1 に答える 1

3

問題は、DLL が で参照されていないことSolution/{PROJECT}/Referencesです。を右クリックして [Referencesアセンブリの追加] (または何でも) を選択し、[.NET] タブに移動して を見つけますSystem.Management

using ステートメントがあるからといって、DLL が参照されているわけではありません。

素敵なガイドがMSDNにあります。

于 2012-05-30T05:24:10.990 に答える