我已经在我的解决方案上设置了NuGet Package Restore,它在我的本地机器上运行良好 . 我按照这里提供的说明操作:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
我遇到的问题是在我的构建服务器上发生以下错误:
默认情况下禁用包还原 . 要同意,请打开Visual Studio选项对话框,单击程序包管理器节点并检查'Allow NuGet to download missing packages during build.'您也可以通过将环境变量'EnableNuGetPackageRestore'设置为'true'来同意 .
不幸的是,我无法访问构建服务器,因为它是在站点外控制的,因此无法更新环境变量 . 还有其他方法吗?我可以添加到解决方案文件或类似的任何东西,以允许包恢复?
9 回答
试试这个包:
如果您不能100%确定服务器的配置方式,NuGet可以使用本地设置来处理其行为,这种行为可能无法预测 .
我更喜欢将NuGet设置放在
<sln root>/.nuget/NuGet.targets
文件中,该文件受版本控制且位于单个位置 . 我对此进行了3次快速编辑<sln root>/.nuget/NuGet.targets
,编辑后应如下所示:Change 1 :
Change 2 :
Change 3 :我还添加/取消注释了
<PackageSource ... >
标签,以删除任何依赖关系 .当我尝试使用Jenkins构建我的一个项目时,我遇到了这个问题,并通过简单地将
.nuget\NuGet.targets
文件中的一个值从true
更改为false
来设法使其工作 .我变了:
至
请注意元素值已更改 . 希望这可以帮助 .
在%appdata%\ NuGet \ NuGet.Config中添加以下部分
完整的例子
我可能会尝试在.nuget \ NuGet.targets文件中将RestorePackages属性设置为true:
对于任何绊倒这个问题的人,寻找一种在构建服务器上恢复包的方法,NuGet Package Restore给出了当前选项的一个很好的概述 .
我选择使用命令行程序包还原方法 . 它就像发出以下命令行一样简单:
nuget.exe可以从https://docs.nuget.org/consume/installing-nuget获得 . 我使用版本命令行实用程序最新3.X.
运行此命令以修复NuGet启用包
Install-NuGetEnablePackageRestoreFix
然后运行Enable命令
Install-Package NuGetEnablePackageRestore
安装包NuGetEnablePackageRestore
转到工具 - >库包管理器 - >“包恢复” - >取消选中“允许NuGet下载丢失的包”和“自动检查...”
重建解决方案
清洁解决方案
现在选中“允许NuGet下载丢失的包”和“自动检查...”
重建解决方案