【问题标题】:MSBuild Build Hierarchy incorrect after upgrade升级后 MSBuild 构建层次结构不正确
【发布时间】:2012-12-08 09:21:31
【问题描述】:

我正在做一个将 TFS 2008 迁移到 TFS 2012 的概念验证。建立 TFS 2012 并不是很困难,但我在建立一个新的构建服务器时遇到了一些麻烦。在把我的头从墙上敲下来之后,似乎 MSBuild 正在无序地构建我的项目,这完全破坏了构建。现在我阅读了微软的文章,说这在 NETFX4.5 中得到了纠正,但我的两台服务器都安装了 4.5,这个问题仍然存在。在 MSBuild 3.5 中,此问题不存在。我得到的具体错误是:CS0006:找不到元数据文件 [程序集]。

如果我直接在 VS2008 中的构建服务器上构建解决方案,则有问题的项目构建良好。当我进行与文件名过长相关的构建时,我确实遇到了一些例外情况,但这是在我实际构建冒犯 MSBuild 的项目之后很久。此外,我可以干净地构建有问题的项目。

我确实有几个自定义任务,但它们影响不大。

是否有针对 MSBuild 3.5 而不是 MSBuild 4 运行构建?或者有没有一种简单的方法来纠正这个问题,以便我可以使用 MSBuild 4?我在 TFS2012 中使用 UpgradeTemplate。谢谢!

【问题讨论】:

  • 你能提供更多细节吗?项目是否从 Visual Studio IDE 正确构建?您使用的是哪个构建模板?您是否使用自定义任务等?
  • 嗨,约翰。我正在使用升级模板,确实构建了解决方案(请参阅上面添加的说明),并且我确实有一些自定义任务,但它们影响不大。
  • 如果解决方案在本地构建,我建议尝试更新的构建模板。它不会包含您的自定义任务,但它会是一个很好的自定义开始。

标签: tfs msbuild


【解决方案1】:

我会检查两件事

  1. 验证列为缺失的程序集确实已构建并且存在
  2. 如果是这样,请验证列为缺失的 dll 是否标记为当前抛出 CS006 错误的项目的依赖项(确保将首先编译它)

【讨论】:

  • “二进制”文件夹中不存在列为缺失的程序集。如果我在 MSBuild 上进行详细诊断,它看起来像这样: *******Assembly 1 **********Assembly 2 ***********Assembly 4 ** **********组装3
  • 所以,问题在于它不是在 MSBuild 中构建的,而是通过 IDE 构建的。我会在 Visual Studio 中打开解决方案,删除该程序集的项目,然后重新添加它并确保它配置正确(在您正在构建的配置中构建)
猜你喜欢
  • 2014-07-23
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2013-11-21
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
相关资源
最近更新 更多