如何使用VSTS构建代理“托管Linux预览”来使用VSTS内部包服务器?

时间:2017-06-19 10:22:08

标签: azure-pipelines nuget-server azure-pipelines-build-task dotnet-restore

出于某种原因,我必须使用构建代理“托管Linux预览”,因此我只能使用“dotnet restore”而不是“nuget restore”,现在我们的团队已经在VSTS上构建了内部包服务器。

在“nuget restore”步骤中,可以选择连接服务器,但“dotnet restore”没有。

我尝试了以下方法,但失败了。

尝试1 添加--source https://****.pkgs.visualstudio.com/_packaging/****/nuget/v3/index.json,我在日志中遇到错误:error : Unable to load the service index for source https://****.pkgs.visualstudio.com/_packaging/****/nuget/v3/index.json. [/opt/vsts/work/1/s/src/References.Mapper/References.Mapper.csproj]

尝试2 添加--configfile ../../.nuget/Nuget.Config,我收到与上面相同的错误

似乎构建代理没有从VSTS检索index.json文件的权限,我该如何处理?

1 个答案:

答案 0 :(得分:1)

检查链接Use dotnet with Team Services feeds后,现在我可以成功使用Feed了。

<强>步骤:

  1. 确保已正确分配Feed的权限(转到VSTS&gt; Build&amp; Releases&gt; Packages&gt; Manage / Settings&gt; Permissions)
  2. 向帐户添加PAT(转到个人设置/我的个人资料&gt;安全&gt;个人访问权限&gt;添加&#34; VSTS-Nuget-Packaging&#34;(或您命名),允许打包(读取,写入和管理)&gt;将凭证保留在备注
  3. 修改Nuget.Config,如下所示
  4. 在VSTS构建步骤&#34; dotnet restore&#34;中设置,添加一个 --configfile ../../.nuget/NuGet.Config(位置)&#34;参数&#34; (注意名称是区分大小写的)
  5. Nuget.Config示例:

    <?xml version="1.0" encoding="utf-8"?>
        <configuration>
          <packageSources>
            <add key="VSTS-Package" value="[feed url]"  />
            <add key="Nuget.org" value="https://www.nuget.org/api/v2/" />
          </packageSources>
          <activePackageSource>
            <add key="All" value="(Aggregate source)" />
          </activePackageSource>
          <packageSourceCredentials>
            <VSTS-Package>
              <add key="Username" value="[username]" />
              <add key="ClearTextPassword" value="[PAT]" />
            </VSTS-Package>
          </packageSourceCredentials>
        </configuration>