nuget restore:调用目标抛出了异常

sas*_*alm 15 nuget sln-file

当我从命令行运行时nuget restore,我得到了

解析MyProject.sln中的解决方案文件时出错:调用目标已抛出异常.

但从Visual Studio恢复nuget包运行没有错误.任何解决方法?

Ruu*_*man 28

对于包含许多项目的大型解决方案而言,此错误尤其令人沮丧,因为在文件解析失败的任何时候NuGet都没有提示.

要分析问题,请尝试msbuild MyProject.sln; msbuild的解析器稍微冗长一点.至少它会给你一个行号,所以你会知道在哪里寻找错误.MyProject.sln在文本编辑器中打开以检查该行.在我的例子中,它只是一个空白行,在手动解决TFS合并冲突时意外引入.

(调用似乎很明显msbuild,但在我们的例子中,该调用是更大的构建脚本的一部分,nuget restore首先msbuild是在达到之前中止构建过程.)

NuGet的未来版本应该返回更详细的错误消息; 见问题#1150.


sas*_*alm 9

检查完源代码控制后,我找到了解决方案.有一个不正确的合并(在git中)导致我们的解决方案有2个嵌套项目

Project(...) = ...
Project(...) = ...
EndProject
Global
.......
Run Code Online (Sandbox Code Playgroud)

并且最后一个EndProject丢失了.有趣的是,即使我们的解决方案文件实际上已损坏,Visual Studio也没有失败.

在2个项目之间添加EndProject修复了错误.


Ser*_*çin 7

我有同样的问题.问题是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)

  • 我也有同样的问题,删除空行为我解决了这个问题。 (2认同)

Pip*_*per 6

我的解决方案是将 nuget.exe 更新到最新版本。