使用MsBuild和NuGet构建TeamCity:“无法连接到远程服务器”

时间:2014-01-10 11:37:29

标签: c# msbuild teamcity nuget

我已经设置了我的TeamCity,使用MsBuild构建一个NuGet打包的项目。 在构建期间,将发出以下用于安装软件包的命令,但失败:

..\nuget.exe install "C:\TeamCity\buildAgent\work\811b6866c8757c46\Service\packages.config" -source "https://nuget.org/api/v2/" -RequireConsent -solutionDir "..\ "
错误:
Unable to connect to the remote server 退出代码为1。

有趣的是是当我在cmd提示符(在同一路径内)上运行这个完全相同的命令时,它会成功而没有任何错误。

这是我到目前为止所做的:

  • 在TeamCity中的环境变量下添加新的构建参数:env.EnableNuGetPackageRestore并将其设置为“true”
  • 在..nuget \ nuget.targets文件中添加包源(https://nuget.org/api/v2/)的特定路径(如上所述here
  • 提供附加路径提供路径的方法:
  • 修改.nuget文件夹中的nuget.config文件(..nuget \ nuget.config)
  • 修改了构建运行器正在执行的SYSTEM帐户的nuget.config(C:\ Windows \ SysWOW64 \ config \ systemprofile \ AppData \ Roaming \ NuGet \ nuget.Config)(如上所述here

我在想的是,这与系统用户的漫游配置文件(构建代理程序运行)有关,因为当构建代理程序与我的帐户一起运行时,它都可以正常工作。但两个配置文件的nuget.config是相同的,我没有想法。也许系统用户无法访问WinServer2012R2上的Internet?也许它需要额外的权限?哪些?

你有什么想法尝试吗?

1 个答案:

答案 0 :(得分:2)

错误原来是我们网络上的ISA服务器(TMG客户端)的设置。默认情况下,这不是为新(本地)用户设置的,因此SYSTEM帐户无法访问Web。

我已为新的本地用户(非域名,密码未过期)设置了此项,将其添加到管理员组,现在它可以正常工作。