虽然第三方库设置为“复制本地”,但不会将其复制到项目输出中

时间:2012-12-01 10:33:33

标签: .net visual-studio dependencies

我对Visual Studio 2008存在依赖性问题,在解决方案中有两个项目 ProjectA ProjectB ProjectA 具有对 ProjectB 的引用,而 ProjectB 具有对第三个库方的引用,该第三方设置为复制本地

现在,当构建 ProjectA 时, ProjectB 引用的第三方库尚未复制到 ProjectA 输出。< / p>

我错过了什么或者这是默认行为吗? 我面临的问题是当我在GAC中没有第三方库的机器中部署应用程序时,它会抛出一个依赖性异常。

1 个答案:

答案 0 :(得分:1)

MSBuild行为非常简单。它会在以下情况下复制引用项目的输出程序集的所有依赖项:

  • 复制本地在参考
  • 上设置为True
  • 可以从引用的元数据中找到依赖项。请注意,如果以不寻常的方式加载依赖项,这将阻止任何依赖项被复制,例如Assembly.Load()
  • 依赖项与构建时的引用存在于同一目录中。如果由于任何原因不存在则没有警告
  • 依赖关系未在GAC中注册

如果您错过了前三个子弹中的任何一个,那么您也将无法调试您的解决方案。注意第四个子弹,它似乎与你问题中的最后一句匹配。