Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将dll安装到GAC中_C#_Dll - Fatal编程技术网

C# 将dll安装到GAC中

C# 将dll安装到GAC中,c#,dll,C#,Dll,我希望能够顺利、高效地安装该解决方案,但我继承的远不是这样,编写大部分解决方案的人已经离开了公司 目前,我正在尝试将其安装到测试服务器上,但并不是所有的dll都在安装后正确的位置 首先,如果我在一个项目中使用log4net,那么我想我需要在安装后在文件夹中使用log4net.dll。如何使log4net.dll与项目dll一起复制 其次,ProjectA期望ProjectC的dll在GAC中,或者在我在VisualStudio中调试并检查模块从何处加载时看起来是这样。 我还看到这是在项目A的后期

我希望能够顺利、高效地安装该解决方案,但我继承的远不是这样,编写大部分解决方案的人已经离开了公司

目前,我正在尝试将其安装到测试服务器上,但并不是所有的dll都在安装后正确的位置

首先,如果我在一个项目中使用log4net,那么我想我需要在安装后在文件夹中使用log4net.dll。如何使log4net.dll与项目dll一起复制

其次,ProjectA期望ProjectC的dll在GAC中,或者在我在VisualStudio中调试并检查模块从何处加载时看起来是这样。 我还看到这是在项目A的后期构建事件命令行中输入的:

C:\Program Files x86\Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\GacUtil.exe-i$TargetPath 复制$TargetPath C:\Program Files\MySolution\bin

那么,如何通过安装将Project C的dll导入GAC中呢?我在测试服务器上遇到一个错误,因为它无法加载C.dll

更新更多细节

使用Windows Installer安装解决方案后,会在父文件夹中创建一些文件夹,如应用程序、bin、引擎、服务等

在Apps文件夹中,我有一个.exe,它正在查找C.dll。但是,C.dll会降落到bin文件夹中。如上所述,在执行A.exe的过程中,它实际上从GAC和我的笔记本电脑上加载了C.dll的模块,这些文件位于GAC中,因为在Project C的属性中指定了生成后事件命令行,但不在我尝试安装此解决方案的测试服务器的GAC中

是的,我想我可以做这样的事情:

gacutil -i C.dll

安装之后,但它似乎不正确。

您的问题有两部分与GAC有关,一部分是确保DLL被复制

广汽

查看MSDN中有关如何安装到GAC的此链接。关键是它必须具有强名称,否则将失败

DDLs

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

如果可以在项目中添加引用,请确保属性CopyLocal设置为true 如果您仅在本地拥有该文件,则可以使用符号链接将其添加到项目的子文件夹中,然后设置CopyToOutputDirectory属性。
希望这些能帮助你。

我找到了我要找的东西! 选择安装项目,然后转到菜单“视图->编辑器->文件系统”。
您似乎可以指定DLL必须放在哪里,以及在安装过程中应将哪些内容复制到GAC。

您使用的是什么安装技术?您不需要将C库添加到GAC,GAC仅适用于.Net程序集。为什么你不能从所有东西都被复制的文件夹中执行呢?他似乎指的是C项目,而不是用C编写的项目。很抱歉@mageos搞混了,我不是在用C库,而是在写C代码。我刚刚打电话给其中一个项目,以项目C为例。@mageos,我正在使用Windows Installer。事实上,我已经查看了MSDN链接,但不喜欢在安装后做一些事情。该说明指出,Gacutil.exe仅用于开发目的,不应用于将生产程序集安装到全局程序集缓存中。我还在解决方案的许多项目中使用了符号链接方法来链接到用于配置的外部log4net文件,因此我只需要该文件的一个副本。不过链接不错。该链接还显示了如何使用Windows Installer为您的客户部署进行安装。这是使用InstallShield限量版项目完成的,该项目是一个免费的、需要注册的附加组件。非常简单和直接的UI。