當我在命令行中運行nuget restore
,我得到這個錯誤:的NuGet恢復:異常已通過調用的目標引發異常
Error parsing solution file at MyProject.sln: Exception has been thrown by the target of an invocation.
與此同時,恢復的NuGet包從Visual Studio運行而不錯誤。
這個錯誤怎麼解決?
當我在命令行中運行nuget restore
,我得到這個錯誤:的NuGet恢復:異常已通過調用的目標引發異常
Error parsing solution file at MyProject.sln: Exception has been thrown by the target of an invocation.
與此同時,恢復的NuGet包從Visual Studio運行而不錯誤。
這個錯誤怎麼解決?
我在檢查我們的源代碼控制後發現瞭解決方案。有一個不正確的合併(在git中)導致我們的解決方案有2個嵌套項目
Project(...) = ...
Project(...) = ...
EndProject
Global
.......
並且最後一個EndProject丟失。有趣的是,即使我們的解決方案文件被破壞,Visual Studio也不會失敗。
在2個項目之間添加EndProject可修復錯誤。
這個錯誤對於有很多項目的大型解決方案尤其令人沮喪,因爲NuGet在文件解析失敗的時候沒有提示。
要分析問題,請嘗試msbuild MyProject.sln
; msbuild的解析器稍微冗長些。至少它會給你一個行號,所以你會知道在哪裏尋找錯誤。在文本編輯器中打開MyProject.sln
以檢查該行。就我而言,這只是一個空白的行,意外地在手動解決TFS合併衝突時被引入。
(這似乎是很明顯的調用msbuild
,但在我們的情況下,電話是一個更大的構建腳本的一部分,其中nuget restore
將是第一位的,中止構建過程msbuild
達到之前。)
未來的NuGet的發佈應該返回更詳細的錯誤信息;見issue #1150。