在C#上在Windows 7上注册dll

时间:2011-09-13 11:35:56

标签: c# dll windows-7 registry

如何在Windows 7上注册我的书面dll?

我发现了这段代码片段,但似乎在Windows 7中无效:

public static void registerDLL(string dllPath) 
{
  try {
    //'/s' : indicates regsvr32.exe to run silently.
    string fileinfo = "/s" + " " + "\"" + dllPath + "\"";

    Process reg = new Process();
    reg.StartInfo.FileName = "regsvr32.exe";
    reg.StartInfo.Arguments = fileinfo;
    reg.StartInfo.UseShellExecute = false;
    reg.StartInfo.CreateNoWindow = true;
    reg.StartInfo.RedirectStandardOutput = true;
    reg.Start();
    reg.WaitForExit();
    reg.Close();
    }
catch(Exception ex) {
    MessageBox.Show(ex.Message);
    }
}

2 个答案:

答案 0 :(得分:0)

工具“regsvr32.exe”只能注册本机COM-Dll。如果要注册用C#编写的DotNet COM对象,则必须使用“regasm.exe”。要做到这一点,您需要提升,因为它写入注册表中的HKEY_LOCAL_MACHINE。

答案 1 :(得分:0)

reg.StartInfo.Verb = "runas";

这可能是一个肮脏的解决方法。了解UAC,您应该找到Microsoft推荐的方法,

http://msdn.microsoft.com/en-us/library/aa511445.aspx