如何使用 VSTS 构建代理 "Hosted Linux Preview" 使用 VSTS 内部包服务器?

How to consume VSTS internal package server with VSTS build agent "Hosted Linux Preview"?

由于某些原因,我必须使用构建代理 "Hosted Linux Preview",所以我只能使用 "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 文件的权限,我该如何进行?

检查link Use dotnet with Team Services feeds后,我现在可以成功消费提要了。

步骤:

  1. 确保正确分配了提要的权限(转到 VSTS > 构建和发布 > 包 > Manage/Settings > 权限)
  2. 向帐户添加 PAT(转到个人 Settings/My 配置文件 > 安全 > 个人访问令牌 > 添加 "VSTS-Nuget-Packaging"(或您命名),允许打包(读取、写入和管理) > 将凭据记在笔记中
  3. 修改Nuget.Config如下
  4. 在 VSTS 构建步骤 "dotnet restore" 中设置,添加一个 --configfile ../../.nuget/NuGet.Config(位置)在"Arguments"(注意名称区分大小写)

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>