当我在命令行中运行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。