NuGet安装退出代码9009

15
在构建我的解决方案时,我遇到了一个错误:
错误116: 命令"nuget install “C:\Mycode\Test\some\ClassLibs\WCF\ServiceHosts\Monitor\packages.config” -o “C:\Mycode\Test\Some\ClassLibs\WCF\ServiceHosts\Monitor\packages.config”"退出代码为9009
我使用的是VS 2012,谢谢。
2个回答

23
为解决“nuget退出代码为9009”的错误,我下载了最新版本的NuGet.exe (https://www.nuget.org/downloads) 并将其放置在C:\Windows目录下,这样Windows就可以找到可执行文件了。

1
在我的情况下,nuget.exe已经存在于C:\Windows\system32中,但不存在于C:\Windows中。将其复制到上一级文件夹对我有用。 - Phred Menyhert
1
如果您决定使用另一个文件夹,请将其添加到PATH环境变量中,并重新启动 VS。确保您可以从命令行看到nuget.exe。 - Jose Parra

16
错误9009意味着Visual Studio找不到一个可执行文件,通常是在预先或后置构建步骤中使用的文件。在这种情况下,似乎NuGet是问题的根源。
您是否在使用管理依赖项的解决方案时使用了NuGet(并且可能已启用“启用NuGet包还原”选项),但尚未将NuGet扩展加载到Visual Studio 2012中?
要确认是否为此情况,请转到“工具”菜单,单击“扩展和更新”,选择“已安装”,然后在“扩展和更新”表单的右上角搜索框中键入nuget Return。如果已安装,则应该看到它列在版本号旁边 - 例如,在我输入这篇文章时,我相信2.4.40116.9051是最新的版本。如果找不到它,请从“扩展和更新”表单左侧的列表中选择“在线”。找到NuGet包管理器条目(很可能是列表上的第一项)并单击“下载”以获取它。

1
我在Visual Studio 2012中有NuGet。我认为我应该修改项目文件,但不确定。 - user1108948
可能是的。这个错误看起来不太对,因为我认为-o后面的参数应该是一个目录,但它似乎是一个文件。如果您直接从软件包管理器控制台执行安装命令,是否可以获得更多/更好的信息? - Richard J Foster
我在包管理器控制台中尝试了一下,然后错误就消失了。为什么?NuGet的版本是2.2.40116.9051。 - user1108948
很抱歉,我也不知道。唯一能想到的是,当NuGet尝试还原包时,它返回了一个错误状态,从而触发了Error 9009。我想知道是否“包还原”操作已经为早期版本的NuGet准备好,并且命令行参数不兼容。我怀疑当您使用包管理器控制台时,NuGet意识到“嘿,我没有xyz包!”(就像在构建期间应该做的那样)并获取了它。现在所有依赖包都可用,一切正常。 - Richard J Foster
在使用nuget之前,在包管理器控制台中键入“dotnet restore”这个简单的修复方法对我很有效! - Phillip

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