2012-12-20 40 views
2

我正在做一个将TFS 2008迁移到TFS 2012的概念证明。站起来TFS 2012并不是非常困难,但我在建立新的构建服务器时遇到了一些麻烦。在将我的头撞到墙上后,看起来MSBuild正在破坏我的项目,这完全破坏了构建。现在我阅读微软的文章,称这在NETFX4.5中得到了纠正,但是我的两台服务器都安装了4.5,并且这个问题仍然存在。在MSBuild 3.5中,这个问题不存在。我得到的具体错误是:CS0006:找不到元数据文件[程序集]。升级后MSBuild构建层次结构不正确

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

我确实有一些自定义任务,但它们没什么影响。

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

+0

您能否提供更多详细信息?该项目是否从Visual Studio IDE正确构建?你正在使用哪个构建模板?你在使用自定义任务等吗? –

+0

嗨,约翰。我使用升级模板,解决方案构建(请参阅上面的添加说明),并且我有一些自定义任务,但它们没有多大意义。 – dparsons

+0

如果解决方案是在本地构建的,我会建议尝试使用较新的构建模板。它不会有你的自定义任务,但它是一个开始自定义的好开始。 –

回答

0

两件事情我会检查

  1. 验证列为失踪的组件实际上是建立和存在
  2. 如果这是真的,验证DLL列为失踪被标记为的依赖项目,目前正在抛出CS006错误(确保它将首先编译)
+0

“二进制文件”文件夹中不存在列为缺失的程序集。如果我在MSBuild上做了一个诊断详细信息,它看起来像这样: ******* Assembly 1 ********** Assembly 2 ********* **程序集4 ************程序集3 – dparsons

+0

所以,问题在于它没有在MSBuild中构建,而是通过IDE。我会在Visual Studio中打开解决方案,删除该程序集的项目,然后重新添加它并确保它已正确配置(要在您正在构建的配置中生成) – Alex