我想对解决方案进行平稳有效的安装,但是我"继承"的内容与此相去甚远,而且编程大多数的人已经离开了公司。
目前,我试图将其安装在测试服务器上,而不是安装后正确位置的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的地方。