我的NuGet Installer构建步骤出了问题。
我们正在使用官方NuGet.org软件包和我们在TeamCity NuGet服务器上托管的软件包。如果我将Packages Sources留空,则会找到nuget.org中的包,但是一旦我指定%teamcity.nuget.feed.server%
作为包源,就找不到nuget.org中的包。
我尝试将Packages Sources设置为包含两者,但它仍然不适用于官方nuget.org包。
https://nuget.org/api/v2/
%teamcity.nuget.feed.server%
这不是nuget.org包源的正确URL吗?如何告诉它使用这两个来源?
我在JetBrains Developer discussion board上问了这个问题,但没有得到任何答复。
答案 0 :(得分:11)
有同样的问题,有趣的是我的Nuget来源被指定为
https://www.nuget.org/api/v2/
http://nugetserver/nuget
在第二个网址上添加正斜杠以使其http://mynugetserver/nuget/
解决问题。
我花了一段时间才弄明白。现在我的Nuget-installer构建步骤正常运行。
答案 1 :(得分:8)
显然甚至不需要NuGet Installer构建步骤。我编辑了.nuget/NuGet.targets
文件以包含两个路径并删除了NuGet安装程序构建步骤,它现在可以正常工作。
最初为此解决方案设置TeamCity时,如果没有NuGet安装程序步骤它就无法工作,所以我不知道还有什么其他方法可以使这项工作有所不同,但也许NuGet.targets文件是一直都很关键。
对this blog post的评论指出了我正确的方向。
答案 2 :(得分:2)
您可以修改运行TeamCity的用户在 AppData 本地文件夹中的 NuGet.Config ,而不是修改每个项目的.targets文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<!--<add key="repositoryPath" value="J:\TeamCity7\buildAgent\work\my_shared_packages_dir" />-->
</config>
<packageRestore>
<add key="enabled" value="True" />
</packageRestore>
<packageSources>
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
<add key="MMG TeamCity Nuget Server" value="http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>
每个项目中.nuget文件夹中的NuGet.exe将首先遵循此处设置的配置,然后应用.targets文件中完成的任何“覆盖”。
答案 3 :(得分:0)
这里的问题相同。我正在使用TeamCity v10,需要Nuget步骤(我的解决方案中没有.targets文件)。但是,我使用了另一种方法来添加&#34; extra&#34;包源:
c:\BuildAgent\tools\NuGet.CommandLine.2.7.0\tools\Nuget.exe sources Add -Name TeamCity-feed -Source http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc/
之后,我添加了一个Nuget安装程序步骤,并且没有在TeamCity的包源框中指定任何内容,现在来自公共提要nuget.org和我的内部提要的两个包都可以毫无问题地恢复。