我有一个Xamarin Forms项目,我正在使用一个私有的Telerik nuget feed(我们正在使用它们的UI控件)。
在Azure DevOps构建管道中,我向Telerik nuget提要添加了新的服务连接。
在我的构建管道中,我有一个nuget任务,用于还原这些软件包。
但是,我的构建失败,并显示错误“ 无法解析Telerik.UI.for.Xamarin ”。
我对配置私有nuget提要的理解可能不正确。我是否需要指定一个指定Telerik nuget软件包的nuget.config文件?我是否需要从.csproj中删除对Telerik软件包的引用? (即,我是否需要将我的私有nuget软件包分开,以防止该版本尝试下载它们?)
答案 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
删除了斜杠,一切都会按预期进行。