TFS构建包含的解决方案使用NuGet

3
我在使用NuGet时遇到了问题,真的让我很烦恼!我正在尝试运行一个包含nuget.exe的解决方案的TFS构建。我在本地工作站上从Visual Studio运行它没有任何问题,但当我在TFS服务器上排队新的构建时,构建会因为以下已知错误而失败:
D:\<...SolutionPath...>.nuget\nuget.targets (88): 默认情况下禁用软件包还原。要同意,请打开Visual Studio选项对话框,单击“程序包管理器”节点,并选中“允许NuGet在生成期间下载缺少的软件包”。您也可以通过将环境变量“EnableNuGetPackageRestore”设置为“true”来同意。
D:\<...SolutionPath...>.nuget\nuget.targets (88): 命令""D:\<...SolutionPath...>.nuget\nuget.exe" install "D:\<...SolutionPath...>\packages.config" -source "" -RequireConsent -solutionDir "D:\<...SolutionPath...>\ ""退出代码为1。
问题是:我已经在TFS构建服务器上将EnableNuGetPackageRestore设置为true,但它仍然抛出相同的错误。我还尝试在同一台TFS服务器上的cmd窗口中使用相同的参数运行nuget.exe,但没有任何问题。
顺便说一下,这是我的NuGet.config的内容:
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <packageRestore>
    <add key="enabled" value="true" />
  </packageRestore>
</configuration>

有什么想法吗?

提前感谢。

2个回答

2
请检查您的TFS构建服务账户是否与您用于进行更改的账户相同。另外,重新启动服务器以确保环境变量成为该服务的一部分。

谢谢你的回答。 你是指EnableNuGetPackageRestore系统变量吗? 这不应该是整个系统共有的,也就是说所有用户账户都可以使用吗? - Silvestre
1
你在修改后重新启动了服务器吗?服务控制管理器长期以来一直存在不刷新服务环境的问题。 - Christopher Painter
2
只是为了澄清一下:不需要重新启动服务器,您只需重置构建控制器服务即可。 - Silvestre

1
  1. 使用执行构建的相同账户登录构建服务器。
  2. 打开Visual Studio。
  3. 在Visual Studio中安装NuGet包管理器。
  4. 重启Visual Studio。
  5. 工具 --> 选项 --> 包管理器 --> 通用: 勾选'允许NuGet在构建期间下载丢失的包'。
  6. 在您的解决方案中启用包还原。

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