当我从命令行运行时nuget restore,我得到了
解析MyProject.sln中的解决方案文件时出错:调用目标已抛出异常.
但从Visual Studio恢复nuget包运行没有错误.任何解决方法?
Ruu*_*man 28
对于包含许多项目的大型解决方案而言,此错误尤其令人沮丧,因为在文件解析失败的任何时候NuGet都没有提示.
要分析问题,请尝试msbuild MyProject.sln; msbuild的解析器稍微冗长一点.至少它会给你一个行号,所以你会知道在哪里寻找错误.MyProject.sln在文本编辑器中打开以检查该行.在我的例子中,它只是一个空白行,在手动解决TFS合并冲突时意外引入.
(调用似乎很明显msbuild,但在我们的例子中,该调用是更大的构建脚本的一部分,nuget restore首先msbuild是在达到之前中止构建过程.)
NuGet的未来版本应该返回更详细的错误消息; 见问题#1150.
检查完源代码控制后,我找到了解决方案.有一个不正确的合并(在git中)导致我们的解决方案有2个嵌套项目
Project(...) = ...
Project(...) = ...
EndProject
Global
.......
Run Code Online (Sandbox Code Playgroud)
并且最后一个EndProject丢失了.有趣的是,即使我们的解决方案文件实际上已损坏,Visual Studio也没有失败.
在2个项目之间添加EndProject修复了错误.
我有同样的问题.问题是sln文件有相同的空行.我删除了这些行.它解决了
问题
//Blank Line
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
MinimumVisualStudioVersion = 10.0.40219.1
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Prod|Any CPU.ActiveCfg = Prod|Any CPU
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Prod|Any CPU.Build.0 = Prod|Any CPU
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)
修正版
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
MinimumVisualStudioVersion = 10.0.40219.1
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Debug|Any CPU.Build.0 = Debug|Any
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Prod|Any CPU.ActiveCfg = Prod|Any CPU
{658E5ED2-A01E-41DD-A952-F5EDE9E4AEE0}.Prod|Any CPU.Build.0 = Prod|Any CPU
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4871 次 |
| 最近记录: |