从Azure DevOps中的私有供稿还原包时出错

时间:2018-11-02 10:42:51

标签: nuget azure-devops nuget-package nuget-package-restore

我有一个Xamarin Forms项目,我正在使用一个私有的Telerik nuget feed(我们正在使用它们的UI控件)。

在Azure DevOps构建管道中,我向Telerik nuget提要添加了新的服务连接。

enter image description here

在我的构建管道中,我有一个nuget任务,用于还原这些软件包。

enter image description here

但是,我的构建失败,并显示错误“ 无法解析Telerik.UI.for.Xamarin ”。

enter image description here

我对配置私有nuget提要的理解可能不正确。我是否需要指定一个指定Telerik nuget软件包的nuget.config文件?我是否需要从.csproj中删除对Telerik软件包的引用? (即,我是否需要将我的私有nuget软件包分开,以防止该版本尝试下载它们?)

2 个答案:

答案 0 :(得分:0)

经过反复试验,我最终通过为项目创建nuget.config文件并添加以下条目来设法解决此问题。

<?xml version="1.0"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="true" />
    <add key="automatic" value="true" />
  </packageRestore>
</configuration>

这些只是默认值,允许我的项目从nuget.org中获取软件包。然后,在构建过程中,我为从私有Telerik nuget提要中获取软件包而配置的服务凭据将合并到此nuget.config文件中。因此,该版本可以从nuget.org以及私有Telerik提要中获取默认软件包。

答案 1 :(得分:0)

在我们的案例中,问题是斜杠。在我们的nuget.config文件中,端点指定为https://nuget.telerik.com/nuget/,但是在Azure DevOps的服务连接中,端点被指定为https://nuget.telerik.com/nuget(请注意,后面没有斜杠!)。 / p>

Azure DevOps对此特别有意思,这有点令人讨厌,但是一旦我们最终看到了差异并从nuget.config删除了斜杠,一切都会按预期进行。