混合nuget.org中的软件包和VSTS中的存储库文件夹

时间:2018-07-25 14:52:18

标签: azure-devops nuget-package-restore

我的解决方案从Nuget.org抓取了一些nuget软件包,其中一些在我的存储库中的“ lib”文件夹下。我知道在我的存储库中存储软件包不是最好的选择,但是就目前而言,我仍然坚持使用它。

在我的解决方案中,nuget.config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="CustomSource" value="../lib" />
  </packageSources>
    <activePackageSource>
    <add key="All" value="(Aggregate source)"  />
  </activePackageSource>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>

它在Visual Studio中工作正常。

在VSTS中,我更改了nuget restore task选项: Restore Nuget

我的构建失败,像这样:

  

nuget命令失败,并显示退出代码(1)和错误(失败   检索有关的信息   远程源中的“ Microsoft.Extensions.Configuration.Abstractions”   'D:\ a \ 1 \ lib'。)

     

软件包还原失败

显然,应该从nuget.org下载Microsoft.Extensions.Configuration.Abstractions。我应该更改什么,以便它尝试使用2个nuget源? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果您在NuGet恢复任务中指定了自己的NuGet.config文件,它将把指定的NuGet.config文件的内容保存到一个临时配置文件中,例如:D:\a\1\Nuget\tempNuGet_3274.config

因此,如果您使用的是托管代理,则应将本地供稿路径指定为:

<add key="CustomSource" value="../s/Projectname/lib" />

此外,您还可以使用位于本地计算机上的private agent,以便可以从其他目录中找到软件包。