TeamCity 不从特定包源恢复 NuGet 包
TeamCity not restoring NuGet packages from particular package source
我最近从他们的新 NuGet 服务器向我的解决方案添加了一堆 Sitecore NuGet 包:https://sitecore.myget.org/F/sc-packages/api/v3/index.json
但是TeamCity好像不能下载这些:
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.Linq.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel.NoReferences'.
我已经在我的 'NuGet Installer' 构建步骤中修改了包源列表,以便 Sitecore 源是唯一的,但它仍然无法恢复这些 .dll。 (附带说明:我原以为其他软件包现在会失败,因为它们的源已被删除,但这些软件包没有错误?)
查看日志,我可以看到正在触发的命令,看起来是正确的:
C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.8.6\tools\NuGet.exe restore C:\TeamCity\buildAgent\workce411043f6b04c\MySolution.sln -Source https://sitecore.myget.org/F/sc-packages/api/v3/index.json
您引用了 Nuget v3 提要,但您的 TeamCity Nuget 安装程序步骤似乎设置为使用 Nuget.exe v2.8.6。更新设置以使用 v3+:
我建议您不要在 TeamCity 中指定包源,而是使用 .sln 文件旁边的 Nuget.config
文件。这也意味着每个开发人员不需要在 Visual Studio 中单独添加 feed 源,也不需要允许 feed 列表是源代码控制的。 TeamCity 也会自动将此列表用于包源。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="Sitecore NuGet Feed" value="https://sitecore.myget.org/F/sc-packages/api/v3/index.json" />
<add key="Custom Server" value="http://my-custom-server.org/api/v3/" />
</packageSources>
</configuration>
您可以在此博客 post 中找到有关 The right way to restore NuGet packages 的更多详细信息。
我最近从他们的新 NuGet 服务器向我的解决方案添加了一堆 Sitecore NuGet 包:https://sitecore.myget.org/F/sc-packages/api/v3/index.json
但是TeamCity好像不能下载这些:
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.Linq.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel.NoReferences'.
我已经在我的 'NuGet Installer' 构建步骤中修改了包源列表,以便 Sitecore 源是唯一的,但它仍然无法恢复这些 .dll。 (附带说明:我原以为其他软件包现在会失败,因为它们的源已被删除,但这些软件包没有错误?)
查看日志,我可以看到正在触发的命令,看起来是正确的:
C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.8.6\tools\NuGet.exe restore C:\TeamCity\buildAgent\workce411043f6b04c\MySolution.sln -Source https://sitecore.myget.org/F/sc-packages/api/v3/index.json
您引用了 Nuget v3 提要,但您的 TeamCity Nuget 安装程序步骤似乎设置为使用 Nuget.exe v2.8.6。更新设置以使用 v3+:
我建议您不要在 TeamCity 中指定包源,而是使用 .sln 文件旁边的 Nuget.config
文件。这也意味着每个开发人员不需要在 Visual Studio 中单独添加 feed 源,也不需要允许 feed 列表是源代码控制的。 TeamCity 也会自动将此列表用于包源。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="Sitecore NuGet Feed" value="https://sitecore.myget.org/F/sc-packages/api/v3/index.json" />
<add key="Custom Server" value="http://my-custom-server.org/api/v3/" />
</packageSources>
</configuration>
您可以在此博客 post 中找到有关 The right way to restore NuGet packages 的更多详细信息。