【发布时间】:2011-02-12 23:45:19
【问题描述】:
任何想法如何强制 GAC DLL 被引用?
这是我的问题,我经常使用将自身注册到 GAC 的 3rd 方 DLL,当我在项目中使用它时,它会从 gac 中读取它,而当我部署时,我总是忘记添加DLL,因为它不在 Bin/Referenced 文件夹中。
是否强制 Visual Studio 添加 DLL 而不是来自 GAC?
【问题讨论】:
标签: visual-studio deployment dll gac
任何想法如何强制 GAC DLL 被引用?
这是我的问题,我经常使用将自身注册到 GAC 的 3rd 方 DLL,当我在项目中使用它时,它会从 gac 中读取它,而当我部署时,我总是忘记添加DLL,因为它不在 Bin/Referenced 文件夹中。
是否强制 Visual Studio 添加 DLL 而不是来自 GAC?
【问题讨论】:
标签: visual-studio deployment dll gac
仅当 GAC 的程序集在一个参考级别深时复制本地才有效。例如,如果您有一个引用 GAC 程序集的项目,并且如果您的 Web 项目引用了该项目,那么当是,GAC 程序集将被复制到第一个项目的 bin 文件夹中,但不会复制到您的 Web 项目的 bin 文件夹中。
因此,解决方案是直接在 Web 项目中设置对 GAC 程序集的引用,并指定 Copy Local。即使在这种情况下 web 项目没有直接使用引用,它也会将其复制到 web 应用程序的 bin 文件夹中。
【讨论】:
右键单击程序集引用,选择属性,然后将“复制本地”更改为 true。这将导致它将程序集复制到部署目录中
【讨论】:
MyExe 引用 MyLib 引用 DllInGac 则 MyLib 将被复制到本地,但如果它们已经在 GAC 中,其依赖项将不会被复制到 MyExe。
在您的引用中选择 dll 并在属性窗口中设置 CopyLocal=true。
【讨论】:
选择引用并将 Copy Local 属性设置为 True
【讨论】: