将 dll 安装到 GAC 中

  • 本文关键字:GAC 安装 dll c# dll
  • 更新时间 :
  • 英文 :


我想对解决方案进行平稳有效的安装,但是我"继承"的内容与此相去甚远,而且编程大多数的人已经离开了公司。

目前,我试图将其安装在测试服务器上,而不是安装后正确位置的DLL的所有土地。

首先,如果我在项目中使用log4net,则在安装后需要log4net.dll(我猜)。如何将log4net.dll复制到项目dll?

其次,Project A期望Project C的DLL处于GAC中,或者当我在Visual Studio中调试并检查模块从何处加载时,似乎会在GAC中。我还看到这是在项目a的邮内构建事件命令中输入的:

" C: Program Files(X86) Microsoft SDKS Windows Windows v7.0a bin bin netfx 4.0 Tools x64 gacutil.exe" -i(targetPath) 复制" $(targetPath)" C: Program Files MySolution bin"

那么,如何通过安装将项目C的DLL进入GAC?我在测试服务器上遇到了一个错误,因为它无法加载c.dll。

更新更多详细信息

使用Windows安装程序安装解决方案后,在父文件夹中创建了一些文件夹,例如应用程序,垃圾箱,发动机,服务等。

在应用程序文件夹中,我有A.EXE,它正在寻找c.dll。但是,c.dll降落在bin文件夹中。如上所述,在执行A.EXE期间,它实际上从GAC加载了C.DLL的模块(在我的笔记本电脑上,这些文件在GAC中,因为后构建事件命令命令在项目C的属性中指定的行,但在我试图安装此解决方案的测试服务器的GAC中未指定。

是的,我想我可以运行这样的东西:

gacutil -i C.dll

安装后,但看起来不正确。

与GAC有关的问题有两个部分,并确保复制DLL。

GAC

查看此链接(https://msdn.microsoft.com/en-us/library/dkkx79(v = vs.110).aspx),来自MSDN,涉及如何安装到GAC中。关键是必须强烈命名或将失败。

ddls

根据您的引用log4nnet的方式,有几种方法可以做到这一点。

  • 如果您可以在项目中添加参考,请确保将属属属属设置为true
  • 如果您只有本地文件,则可以使用符号链接(https://support.microsoft.com/en-us/kb/306234)将其添加到项目的子文件夹中,然后设置copytoOutputDirectory属性。

希望这些帮助您。

我找到了我想要的东西!选择设置项目,然后转到菜单"视图" ->编辑器 ->文件系统。看来您可以指定DLL必须去的地方,以及在安装过程中应复制到GAC的地方。

最新更新