Msbuild Team City自定义NuGet包还原未发生

Msbuild Team City自定义NuGet包还原未发生,msbuild,teamcity,nuget,nuget-server,Msbuild,Teamcity,Nuget,Nuget Server,我目前正在将我们的构建从Cruise Control切换到Team City,在尝试为我的几个项目中使用的组件恢复自定义NuGet包时遇到了一个问题。该组件称为连接器基座。我在Team City中为Connector Base设置了一个构建,该构建成功创建了一个NuGet包,并将其保存为工件,以便从我设置的Team City NuGet服务器访问。我已经进入了需要访问此依赖项的项目解决方案,并且使用Team City设置中提供的URL从NuGet Package Manager安装了连接器库。一

我目前正在将我们的构建从Cruise Control切换到Team City,在尝试为我的几个项目中使用的组件恢复自定义NuGet包时遇到了一个问题。该组件称为连接器基座。我在Team City中为Connector Base设置了一个构建,该构建成功创建了一个NuGet包,并将其保存为工件,以便从我设置的Team City NuGet服务器访问。我已经进入了需要访问此依赖项的项目解决方案,并且使用Team City设置中提供的URL从NuGet Package Manager安装了连接器库。一切正常,其构建和功能与预期一致。然后我将其提交给SVN,并尝试使用TeamCity中的NuGet安装程序构建步骤在我的解决方案文件上执行NuGet包还原。结果是,它不会生成或恢复任何包,因此在以后的构建中失败,因为它找不到连接器基依赖项。我已经在互联网上搜索过了,我能找到的最接近答案是:。但这是指包的创建,而不是恢复

我包括我的日志以供参考:

Step 1/6: NuGet Package Restore (NuGet Installer)
[12:09:00]scan: Searching for nuget.config files
[12:09:00]Found packages folder: C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\packages
[12:09:00]Failed to find repositories.config at C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\packages\repositories.config
[12:09:00]Scanning projects in solution file: C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\Acris.sln
[12:09:00]Found project C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\Acris\Acris.csproj
[12:09:00]Found project C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\IngeoCommon\IngeoLogger\IngeoLogger\IngeoLogger.csproj
[12:09:00]Found project C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\Common_Components\DynamicConnectorTester\DynamicConnectorTester.csproj
[12:09:00]Found project C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\Common_Components\Interface\Interface.csproj
[12:09:00]Found project C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\.nuget
[12:09:00]restore: Restoring NuGet packages for Ingeo\Connector_County\NewConnectors\Acris\Acris.sln
[12:09:00]NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\Acris.sln -Source https://nuget.org/api/v2/ -Source http://localhost/guestAuth/app/nuget/v1/FeedService.svc/
[12:09:00]Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script1470188724716953938.cmd
[12:09:00]in directory: C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris
[12:09:01]JetBrains TeamCity NuGet Runner 8.0.30168.9
[12:09:01]Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.8
[12:09:01]Starting NuGet.exe 2.8.50506.491 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe
[12:09:01]Process exited with code 0
执行包还原步骤后,我尝试构建解决方案,但失败,出现以下错误:

“此项目引用此计算机上缺少的NuGet程序包。请启用NuGet程序包还原以下载这些程序包”

首先,我不希望每次生成时都必须在生成服务器上物理地启用包还原,也不希望在简单的包还原应该起作用时签入.nuget文件夹。有没有人有这方面的经验?我读到的一件事似乎表明,这是因为我的连接器基NuGet包也依赖于其他非定制NuGet包。非常感谢您的帮助

更新

以下是我在能够恢复我的软件包后仍然遇到的错误:

[Error] C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\Acris\Acris.csproj(327, 5): This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is C:\TeamCity\buildAgent\work\e0174164dde3f938\Ingeo\Connector_County\NewConnectors\Acris\\.nuget\NuGet.targets.

编辑生成配置并添加一个名为EnableNuGetPackageRestore的环境变量类型的新参数,该参数的值为true。这将允许包恢复,无论哪个代理运行生成


在TeamCity上启用包还原后,在本地加载解决方案,右键单击解决方案浏览器中的解决方案,然后选择“启用NuGet包还原”。这将更改解决方案中的每个项目,以导入NuGet.targets MsBuild任务,您需要将此更改提交到源代码管理。

依赖于my NuGet软件包的项目以前没有安装任何NuGet软件包。这意味着packages.config文件尚未添加到SVN。一旦我提交了packages.config,它就能够恢复这些包。但是,我仍然在上面的更新中遇到错误。添加此环境变量参数并将其设置为true后,我仍然遇到相同的错误。我已编辑了我的答案,以添加到您需要执行的另一个步骤中。在这之后,它应该会起作用。这是我以前已经在做的事情。我们必须在所有解决方案上“启用NuGet package restore”,然后才能在从SVN下拉时使其工作。它仍然有同样的问题。