尝试调用托管代码DLL时,Installshield安装程序崩溃

时间:2015-01-03 12:18:30

标签: c# installshield

我创建了一个installshield项目。我已经使用“在托管程序集中调用公共方法”创建了一个自定义操作。 DLL中的代码是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace ClassLibrary1
{
    public class Class1
    {
         public string MyFunc(int flag)
        {


             System.Management.ManagementClass mangnmt = new ManagementClass("Win32_LogicalDisk");
             ManagementObjectCollection mcol = mangnmt.GetInstances();
             string result = "";
             foreach (ManagementObject strt in mcol)
                {
                 if (Convert.ToInt32(strt["MediaType"]) != 12) { continue; }
                 if (Convert.ToInt32(strt["DriveType"]) != 3) { continue; }
                 if (Convert.ToString(strt["Name"]).ToLower() != "c:") { continue; }
                 result += "VolumeSerialNumber   : " + Convert.ToString(strt["VolumeSerialNumber"]) + Environment.NewLine;
                 result = Convert.ToString(strt["VolumeSerialNumber"]);
                 if (!String.IsNullOrEmpty(result)) break;

                }

                return result;


        }
    }
}

每当installshield尝试调用此方法MyFunc时,它都无法找到依赖关系System.managment.dll并且崩溃了。我验证设置因此问题而崩溃,就好像我评论使用system.managment.dll的代码并简单地返回硬编码字符串一样正常。

在installshield中,我还将System.Management.dll添加为在ISClrwap表中创建的自定义操作的依赖项。我还添加了我已经下载的.Net Framework 4.0的installshield先决条件。

我搜索了很多表格,但无法找出解决这个问题的方法。

0 个答案:

没有答案