NuGet包还原 - “默认情况下禁用包还原。要同意,请打开Visual Studio选项对话框。”

27

我正在尝试在构建服务器上使用命令行进行NuGet包还原。

nuget install myapp/packages.config

然而,我遇到了以下错误消息:

默认情况下禁用程序包还原。要同意,请打开Visual Studio选项对话框。

如果我不在构建服务器上安装VS2010(不,我不会这样做),那我该怎么办呢?有注册表设置之类的东西吗?NuGet如何确定程序包还原被禁用?事实上,为什么他们甚至关心是否默认禁用它呢?

4个回答

28

另一种方法是添加

<packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
</packageRestore>

将 %USERPROFILE%\AppData\Roaming\NuGet\nuget.config 文件保存。


1
我在“工具”>“选项”>“NuGet PM设置”中启用了包恢复,但在一个解决方案中仍然遇到错误。我添加了这些行(在根配置元素下),问题得到了解决。 - Todd
如果您的配置为空(例如:<configuration/>),则应添加结束标记,使其变为:<configuration><packageRestore>...</packageRestore></configuration> - LRMAAX

20

当前正在发生这种情况是因为NuGet包恢复需要在下载软件包之前得到用户的同意,并且按照目前的工作方式,没有办法区分用户是否调用了“nuget.exe install packages.config”与包还原。 更多同意方面的详细信息请参见:http://blog.nuget.org/20120518/package-restore-and-consent.html

注:这个问题下周应该会被解决。

作为解决方法,您可以通过将EnableNuGetPackageRestore环境变量设置为true来给予同意。


2
由于某种原因,在命令行(Windows 7)中运行set EnableNuGetPackageRestore=true没有起作用,但在控制面板->高级系统设置中设置环境变量可以解决。对于那些想知道环境变量中的“true”值是什么的人来说,对我来说1true都可以使用。 - Emperor Orionii
@EmperorOrionii 你是在你的构建服务器上完成这个任务的吗? - Mike Marks
@MikeMarks 你觉得呢?是的,不是,或许,不适用。我没有构建服务器,这个项目只是我的爱好。 - Emperor Orionii
@EmperorOrionii 好的,明白了.. 我猜在你的情境下,构建服务器就是你的本地机器。 :) - Mike Marks

1

我今天得到了一个。

在Visual Studio 2013中选中了选项,但仍然收到错误消息。 设置环境变量的解决方法有效,添加环境变量后应重新启动Visual Studio。


0
如果您正在使用旧版本的Visual Studio,请检查更新NuGet。对我很有效。

是的,您会注意到这个问题是在2012年提出的。 - Nathan Ridley

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