2017-07-14 223 views

回答

4

我在檢查我們的源代碼控制後發現瞭解決方案。有一個不正確的合併(在git中)導致我們的解決方案有2個嵌套項目

Project(...) = ... 
Project(...) = ... 
EndProject 
Global 
....... 

並且最後一個EndProject丟失。有趣的是,即使我們的解決方案文件被破壞,Visual Studio也不會失敗。

在2個項目之間添加EndProject可修復錯誤。

4

這個錯誤對於有很多項目的大型解決方案尤其令人沮喪,因爲NuGet在文件解析失敗的時候沒有提示。

要分析問題,請嘗試msbuild MyProject.sln; msbuild的解析器稍微冗長些。至少它會給你一個行號,所以你會知道在哪裏尋找錯誤。在文本編輯器中打開MyProject.sln以檢查該行。就我而言,這只是一個空白的行,意外地在手動解決TFS合併衝突時被引入。

(這似乎是很明顯的調用msbuild,但在我們的情況下,電話是一個更大的構建腳本的一部分,其中nuget restore將是第一位的,中止構建過程msbuild達到之前。)

未來的NuGet的發佈應該返回更詳細的錯誤信息;見issue #1150

相關問題