如何将DLL添加到GAC

时间:2013-09-02 09:06:32

标签: c# .net global-assembly-cache

这是我的代码:

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添加到程序集文件夹?

3 个答案:

答案 0 :(得分:5)

您必须为此设置整个装配路径。 例如

gacutil /i D:/someassembly

其余的代码看起来很好。只需使用整个装配路径而不仅仅是装配名称。

答案 1 :(得分:2)

MSDN Publish.GacInstall

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

private void Register(String assemblyName)
  {
      Publish publish = new Publish();
      publish.GacInstall(assemblyName);
  }

答案 2 :(得分:1)

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