Nuget引起构建问题

18

我已经fork了一个项目(NRefactory - https://github.com/icsharpcode/NRefactory),但我无法构建解决方案。

以下是我从VS中得到的错误:

Severity    Code    Description Project File    Line
Error       The command "C:\Users\Kavignon_Developer\Documents\GitHub Projects\GitHub - Open Source Projects\SummerOfCode_2015\\.nuget\NuGet.exe restore -SolutionDirectory .." exited with code 9009.  ICSharpCode.NRefactory6.CSharp  C:\Users\Kavignon_Developer\Documents\GitHub Projects\GitHub - Open Source Projects\SummerOfCode_2015\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory6.CSharp.csproj   599

从一些帖子中发现:

  1. NuGet.exe install error 9009 - Downloaded Git repo won't build - mono--runtime=v4.0.30319

  2. nuget install exit code 9009

我发现我的nuget有问题或者缺失。在进入解决方案的nuget管理器后,nuget建议修复我的解决方案中缺失的包。我认为这是个好选择,所以我选择了yes。但事实上,它没有改变现状。我已经重新构建和清理了解决方案,但没有影响。

有些人可能会告诉我我没有nuget可执行文件,但是我怎么能在没有它的情况下安装nuget包呢?此外,通过Windows的搜索功能,我能够找到nuget的.exe文件。

这里应该做什么?我正在使用Visual Studio 2015 CTP 6。因为我正在使用VS的新功能,所以别无选择。


基本上,如果我身处那种特殊情况,所需要做的就是打开csproj文件?你给出的号码对应的文件是做什么用的?它说filenameX应该在那里但是不在,应该怎么办?@garryp - Kevin Avignon
这是我在第599行的代码:"<Exec Condition="$(SolutionDir) != $([System.IO.Path]::GetFullPath('..'))" Command="$(NuGet) restore -SolutionDirectory .." />"。但我并不真正理解该怎么做。@garryp - user4844086
你尝试运行了在你的OP中提供的第一个链接回复中给出的PowerShell命令吗?同时确保你以管理员身份运行VS。 - garryp
1
我建议升级到最新版本的VS2015 - 即RC版。我遇到了NuGet问题并报告了一个问题 - 在升级到RC版之后,问题得到了解决:http://stackoverflow.com/questions/29939947/could-not-resolve-this-reference-nuget-on-ci-server/29960616#29960616 - Jochen van Wylick
@spike 它对我的机器没有任何影响。我收到了相同的错误信息。我不知道 OP 是否也有同样的问题。 - Kevin Avignon
显示剩余3条评论
2个回答

0

这是一个古老的问题,但当其他人尝试解决NuGet包构建集成问题时,他们也会进入此页面。

在放弃之前,从命令提示符中运行nuget.exe命令,就像您在项目文件和项目文件夹中定义的那样

nuget pack ****.Common.csproj -Prop Configuration=Release

nuget.exe将给出更详细的错误信息,在我的示例中,Bin\Release文件夹丢失了

MSBuild自动检测:使用来自'C:\Program Files (x86)\MSBuild\14.0\bin'的msbuild版本“14.0”。 尝试从'*****.csproj'构建软件包。 无法找到'C:\Repositories********** \bin\Release\ ****.Common.dll'。 确保已构建该项目。 这不是所有错误的答案,但运行nuget.exe将让您更好地理解构建过程中出现的错误


-1

确实存在一个错误,正如评论中(spike)的用户所提到的,在NuGet可执行文件中。看起来是NuGet安装出了问题。我发现唯一的摆脱方法是完全重新安装您的操作系统(请在保存宝贵数据之前备份),然后再安装回Visual Studio 2015 RC或更高版本的Visual Studio。


我使用了Visual Studio 2015 RC企业版。 我不知道社区版是否可行。重新在我的工作站安装Visual Studio花费了很长时间,而我不想验证它是否也能与其他版本一起作为概念的证明。 我将把这个问题留给OP和可能遇到相同问题的其他人处理。 - Kevin Avignon
2
好在,我不必重新安装操作系统。我有一个包含.nugetnuget.exe的项目源代码控制,并首先摆脱了它(方法如下:http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore)——因为这是良好的实践,可以确保不调用旧版本的`nuget.exe`。然后我清除了所有本地nuget缓存(搜索`.nupkg`并清理整个文件夹)。我在本地和CI服务器上都这样做了。然后我使用`install-package --force命令安装导致问题的软件包,并注意到提示路径中有额外的.0`。 - Jochen van Wylick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接