18

我的 NuGet 安装程序构建步骤有问题。

我们使用官方 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 讨论板上问过这个问题,但没有得到任何回应。

4

4 回答 4

12

有同样的问题,有趣的是我的 Nuget 源被指定为
https://www.nuget.org/api/v2/
http://nugetserver/nuget
在第二个 url 上添加正斜杠以使其http://mynugetserver/nuget/解决问题。我花了一段时间才弄清楚。现在我的 Nuget-installer 构建步骤运行良好。

于 2013-10-27T13:27:58.873 回答
9

显然,甚至不需要 NuGet 安装程序构建步骤。我编辑了.nuget/NuGet.targets文件以包含两个路径并删除了 NuGet 安装程序构建步骤,它现在可以工作了。

最初为此解决方案设置 TeamCity 时,如果没有 NuGet 安装程序步骤,它就无法工作,所以我不知道我还做了哪些不同的工作来完成这项工作,但也许 NuGet.targets 文件一直是关键.

这篇博文的评论为我指明了正确的方向。

于 2012-10-15T19:29:53.873 回答
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 文件中完成的任何“覆盖”。

于 2013-06-22T10:20:38.080 回答
1

这里同样的问题。我正在使用 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 和我的内部提要的包都可以毫无问题地恢复。

于 2016-12-01T12:15:21.527 回答