【问题标题】:How can I enforce VS to include the assemblies used in GAC to be copied to the output folder?如何强制 VS 包含 GAC 中使用的程序集以复制到输出文件夹?
【发布时间】:2014-08-13 13:13:54
【问题描述】:
据我所知,我已将 OpenXML SDK 安装到我的开发机器上,并将相关程序集注册到 GAC。 (例如:DocumentFormat.OpenXml)
我开发了一个控制台应用程序。
但问题是我想在没有安装 OpenXML SDK 的服务器上部署这个应用程序。
问题:
如何强制 Visual Studio 包含 GAC 中使用的程序集以复制到输出文件夹?
(或者我应该找到这些程序集并将它们与控制台应用程序的输出文件夹并排复制?)
【问题讨论】:
标签:
.net
visual-studio-2010
deployment
assemblies
gac
【解决方案1】:
是的,我这样做:
- 将这些引用标记为
Copy Local = true。这会在构建后将 dll 放入 bin 文件夹中。
这对你来说可能已经足够了,但是如果我想将这些添加到源代码管理中,以便其他开发/构建服务器可以找到程序集,我会执行以下步骤:
- 然后将它们从 bin 移动到解决方案中的其他文件夹。
- 删除原始引用。
- 为您复制到的新位置添加新引用。
这与您将要执行的解决方案几乎相同,但 Copy Local 步骤可帮助您找到正在使用的确切 dll,而不是在 GAC 中四处寻找。
【解决方案2】:
我之前遇到过这个问题,您需要查看程序集的属性并找到一个名为“复制到输出目录”的属性并选择“始终复制”。它可能设置为“请勿复制”。类似的东西,我花了一段时间才弄明白,但是当您构建和部署项目时,它包含输出文件夹中的引用。
编辑:右键单击 Visual Studio 中的 .dll 并单击属性,第二个选项将是“复制到输出目录”