0

我对 Visual Studio 2008 有一个依赖问题,在解决方案中有两个项目ProjectAProjectBProjectA有一个 ProjectB 的参考,ProjectB有一个设置为Copy Local的第三方库的参考。

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

我错过了什么还是这是默认行为?我面临的问题是,当我将应用程序部署在 GAC 中没有此第三方库的机器上时,它会引发依赖异常。

4

1 回答 1

1

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

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

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

于 2012-12-01T10:59:44.820 回答