2017-07-14 96 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

相关问题