2

我们最近使用 NuGet 向我们的项目添加了一些依赖项。为了将二进制文件排除在版本控制系统之外,我启用了包还原功能并将生成的.nuget文件夹添加到存储库中。具有依赖项的项目也将RestorePackages选项设置为true,并在文件夹中设置了Import-tag 。nuget.targets.nuget

这样在安装了 NuGet 并在我的 VS 设置中启用包还原功能的机器上一切正常。但是,当我想使用此设置在其他机器上安装依赖项时,我遇到了一些问题。

我的印象是,包含的一个优点是nuget.exe允许我在不一定安装 NuGet 的机器上使用它。然而,在阅读了关于同意的文章后,我认为它实际上失败的原因是这些机器没有在其设置中启用包还原功能——显然,因为他们在技术上甚至不知道 NuGet。

在未安装 NuGet 的计算机上启用包还原的首选方法是什么?除了构建服务器之外,没有安装 NuGet 实际上是一个有效的选项吗?

或者理想情况下,如果 NuGet 本身没有安装并且因此用户无法设置该设置,是否有办法从解决方案中默认启用包还原?(我实际上可以想到一个创建NuGet.Configto的设置脚本%AppData&\NuGet

4

3 回答 3

3

尝试这个:

Install-Package NuGetEnablePackageRestore

或者检查的内容(解压缩),你会发现一些有趣的东西可以帮助你(例如,有一种方法可以从 MSBuild 中设置环境变量)。登录 NuGet 后,您可以在浏览器中下载该包。

于 2012-08-06T19:11:44.233 回答
1

“或者理想情况下,如果 NuGet 本身没有安装并且因此用户无法设置该设置,是否有办法从解决方案中默认启用包还原?”

安装 NuGet 并通过设置启用同意的替代方法是设置以下环境变量:

set EnableNuGetPackageRestore=true
于 2012-08-06T20:55:06.557 回答
0

如果 EnableNuGetPackageRestore(Alexandre Dion 提到)变量用作 Msbuild 脚本的 emmited 属性(我强烈怀疑它以这种方式工作,但现在无法检查) - 您可以调整您的项目或 sln 以将此附加属性设置为 true。

无论如何,根据这个你应该至少有 nuget.exe 作为每个开发人员的控制台管理器。否则,您无法获取引用的 nuget 包。

于 2012-09-14T19:52:37.807 回答