1

这是我的代码:

Register(Assembly.GetExecutingAssembly()).Location);

private void Register(String assemblyName)
{
    System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo("D://gacutil.exe", string.Format("/i {0}", assemblyName));
    processStartInfo.UseShellExecute = false;
    System.Diagnostics.Process process= System.Diagnostics.Process.Start(processStartInfo);
    process.WaitForExit();
}

如何将 DLL 添加到程序集文件夹?

4

3 回答 3

5

您必须放置整个组装路径才能使其正常工作。例如

gacutil /i D:/someassembly

您的其余代码看起来不错。只需使用整个程序集路径,而不仅仅是程序集名称。

于 2013-09-02T09:16:01.190 回答
2

MSDN Publish.GacInstall

使用类中GacInstall()的方法Publish轻松地对程序集进行 GAC。添加对System.EnterpriseServices. 请确保特定的 dll 是Signed。只有签名的程序集可以添加到 GAC。

private void Register(String assemblyName)
  {
      Publish publish = new Publish();
      publish.GacInstall(assemblyName);
  }
于 2013-09-02T09:13:56.397 回答
1

您需要将进程的工作目录设置为当前工作目录或发送 .dll 的完整路径

于 2013-09-02T09:15:20.190 回答