2012-12-20 41 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