没有NuGet的NuGet包恢复许可
我们最近使用NuGet向我们的项目添加了一些依赖项。为了将二进制文件保留在版本控制系统之外,我启用了软件包恢复功能,并将生成的.nuget
文件夹添加到存储库。此外,依赖项目文件夹中的RestorePackages
选项设置为true
,Import
-标记为nuget.targets
。没有NuGet的NuGet包恢复许可
因此,在我的机器上安装了NuGet并在我的VS设置中启用了软件包恢复功能后,它们都能正常工作。但是,当我想使用此设置来安装其他机器上的依赖关系时,我遇到了一些问题。
我的印象是,包括nuget.exe
在内的一个优点可以让我在不需要安装NuGet的机器上使用它。但是,在阅读article on consent后,我认为它实际上失败的原因是这些机器没有在其设置中启用程序包恢复功能 - 显然,他们在技术上甚至不知道NuGet。
在没有安装NuGet的计算机上启用软件包恢复的首选方法是什么?实际上没有安装NuGet是除构建服务器之外的有效选项?
或者理想情况下,如果NuGet没有自行安装,是否有方法可以在解决方案中默认启用软件包恢复功能,因此用户无法设置该设置? (其实,我能想到的设置脚本,创建一个NuGet.Config
到%AppData&\NuGet
的)
试试这个:
Install-Package NuGetEnablePackageRestore
或检查package(将其解压缩)的内容,你会发现一些有趣的东西那会帮助你(例如,有一种从MSBuild中设置环境变量的方法)。登录到NuGet后,您可以在浏览器中下载该软件包。
谢谢,这基本上是我现在所做的。比较该软件包的内容与生成的'.nuget'内容有点令人失望,因为所有改变的都是'RestoreCommand'标签,它在运行NuGet之前设置了环境变量。但我现在在我们的项目中使用了这个想法,它似乎工作正常。起初,我尝试使用基于'%AppData%\ NuGet'存在的条件来创建它,但是它也是使用包含的'NuGet.exe'创建的,所以这是行不通的。最后我只是永久启用它,如果遇到任何问题,我会想到另一种解决方案。 – poke 2012-08-07 13:12:43
“或者理想情况下,如果NuGet没有自行安装,那么默认情况下是否可以从解决方案中启用软件包恢复,因此用户无法设置该设置?
通过设置安装的NuGet并启用同意另一种方法是设置以下的环境变量:
set EnableNuGetPackageRestore=true
谢谢,但理想情况下,我不想在开发人员的机器上完成任何手动步骤。因此,手动设置环境变量并不比安装NuGet并通过设置启用同意更好。一切都应该开箱即用。 – poke 2012-08-07 13:09:06
如果EnableNuGetPackageRestore(由亚历山大·翁提到的)变量作为MSBuild的脚本(我强烈怀疑emmited物业它以这种方式工作,但现在不能检查) - 您可以调整您的项目或sln以将此附加属性设置为true。
无论如何,according to this您应该至少有nuget.exe作为每个开发者的控制台管理器。否则,你不能提取参考nuget包。
'Install-Package NuGetEnablePackageRestore'为我工作! – mikey 2012-11-29 10:32:35