我该如何告诉TeamCity的公司的NuGet安装程序生成步骤使用NuGet.org和TeamCit

2019-08-01 12:10发布

我和我的NuGet安装程序生成步骤的麻烦。

我们使用主办的的TeamCity的NuGet服务器上的两个官方NuGet.org包和我们自己的包。 如果我离开的软件包来源为空,然后从nuget.org包被发现,但只要我指定%teamcity.nuget.feed.server%作为包源,然后从nuget.org包都没有发现。

我试着设置包来源同时包括,但它仍然是不工作的正式nuget.org包。

https://nuget.org/api/v2/
%teamcity.nuget.feed.server%

是不是为nuget.org包源正确网址是什么? 我该如何告诉它使用两个来源?

我问这个的JetBrains公司的开发者讨论板 ,但没有得到任何回应。

Answer 1:

有同样的问题,有趣的足够的我的NuGet源被指定为
https://www.nuget.org/api/v2/
http://nugetserver/nuget
第二网址添加一个斜杠,使它http://mynugetserver/nuget/固定的问题。 我花了一段时间才能找出。 现在我的NuGet安装程序生成步骤运行良好。



Answer 2:

显然,甚至没有需要的NuGet安装程序生成步骤。 我编辑的.nuget/NuGet.targets文件,包括路径和删除的NuGet安装程序生成步骤和现在的工作。

当最初建立的TeamCity此解决方案,它没有没有的NuGet安装步骤的工作,所以我不知道还有什么我所做的不同,以使这项工作,但也许NuGet.targets文件是关键一直。

在评论此博客文章指出我朝着正确的方向发展。



Answer 3:

您可以修改NuGet.Config在为TeamCity的下运行,并且不能修改每个项目的.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.exe在每个项目.nuget文件夹内将尊重在这里先设置CONFIGS,再申请任何“覆盖”在.targets文件来完成。



Answer 4:

这里同样的问题。 我使用TeamCity的V10,需要的NuGet步(无.targets在我的解决方案文件)。 但是,我用另一种方法来增加“额外”包源:

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和我的内部料包都可以毫无问题地恢复任何东西。



文章来源: How should I tell TeamCity's NuGet Installer build step to use both NuGet.org and the TeamCity provided packages source?