Version control 默认情况下禁用Nuget-包还原。要给予同意,请打开Visual Studio选项对话框。(生成服务器上的Nuget包还原)

Version control 默认情况下禁用Nuget-包还原。要给予同意,请打开Visual Studio选项对话框。(生成服务器上的Nuget包还原),version-control,nuget,nuget-package,build-server,nuget-package-restore,Version Control,Nuget,Nuget Package,Build Server,Nuget Package Restore,因此,当我的生成服务器生成我的项目时,我得到的错误是: 默认情况下禁用包还原。要表示同意,请打开 Visual Studio选项对话框 我知道这个错误意味着什么以及如何解决它。问题是我不能在构建服务器上更改任何内容-我的公司不允许这样做。此外,创建名为EnableNuGetPackageRestore的环境变量并将其设置为true不是一个选项,因为这涉及修改生成服务器 我的问题是:是否可以简单地将作为解决方案一部分的所有NuGet软件包检查到源代码管理中,这样构建服务器就没有任何理由去重新下载它

因此,当我的生成服务器生成我的项目时,我得到的错误是:

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

我知道这个错误意味着什么以及如何解决它。问题是我不能在构建服务器上更改任何内容-我的公司不允许这样做。此外,创建名为EnableNuGetPackageRestore的环境变量并将其设置为
true
不是一个选项,因为这涉及修改生成服务器

我的问题是:是否可以简单地将作为解决方案一部分的所有NuGet软件包检查到源代码管理中,这样构建服务器就没有任何理由去重新下载它们?如果是这样,那么当我验证所有NuGet包(.nupkg)都在源代码管理中的packages文件夹中时,也许您可以解释为什么仍然发生此错误:


第二个问题:请原谅我的无知,但“包还原”功能的原因是什么?是否确保每个软件包都是最新版本的软件包?在我看来,这个“特性”应该是一个设置,不应该妨碍在构建服务器上构建项目。在我看来,如果我们希望构建服务器寻找更新的包,那么一定要这样做,否则如果我的所有包都在源代码管理中,并且我们以某种方式告诉构建服务器不要寻找更新的包,这对我来说是合理的

因此,我的具体情况是,我下载了实际Nuget站点的源代码(以便在我的公司中创建Nuget的内部实现),当我尝试部署它时,我遇到了上述错误

我要做的是:

  • 删除.nuget文件夹
  • 在您的文件系统中(不是通过Visual Studio),修改.csproj文件(删除它所说的
    true
    ,以及它导入行中有nuget.targets的项目的位置-只需对“nuget.targets”执行“查找”,并删除所有有
    导入
    的行
  • 保存.csproj文件更改
  • 将更改签入TFS
  • 部署您的解决方案