推送到私有 NuGet 提要 (VSTS) 会产生 400 BadRequest

Pushing to private NuGet feed (VSTS) gives 400 BadRequest

我在 Linux 上推送到 VSTS 时遇到问题。我已经尝试了很多事情,比如在 Linux(版本 2.5.*)上安装 NuGet 包(已经过时了)。由于那不起作用,我安装了单声道和 运行 NuGet 3.5 和 4.0 以推送到 VSTS。现在我遇到了一个错误的请求。

这是我使用的命令:

mono NuGet.exe push pack/package.nupkg -Source "TFS" -ApiKey VSTS

这是我正在使用的nuget.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
    <add key="aspnet-contrib" value="https://www.myget.org/F/aspnet-contrib/api/v3/index.json" />
    <add key="TFS" value="https://some.pkgs.visualstudio.com/_packaging/package/nuget/v3/index.json" />
  </packageSources>
  <activePackageSource>
      <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSourceCredentials>
      <TFS>
        <add key="Username" value="some@emailregisteredatvsts.nl" />
        <add key="ClearTextPassword" value="somepassword" />
      </TFS>
  </packageSourceCredentials>
</configuration>

这是怎么回事?如果我将 Verbosity 设置为 detailed,我将获得下一个堆栈跟踪:http://pastebin.com/F5WfZpqN 我已将它放在 PasteBin 上,因为它是一个非常长的堆栈跟踪。

使用完全相同的命令和配置从 Windows 推送正在运行。但是因为我们的 CI 在 GitLab 和 Linux 机器上 运行 Debian Jessie 我们必须让它在那里工作。

我已经成功地卸载了所有单一完整的但保留 Debian 的依赖项cies。然后我从我的项目(nuget 3.5 和 4.0)中删除了 nuget.exe,并使用 apt-get install nuget 安装了 nuget 这个 nuget 版本是 2.12.0.0 因为这是 nuget 的版本 2 我已经改变了我的配置到下面的配置。注意以nuget/v2结尾的vsts的url:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
    <add key="aspnet-contrib" value="https://www.myget.org/F/aspnet-contrib/api/v3/index.json" />
    <add key="TFS" value="https://some.pkgs.visualstudio.com/_packaging/package/nuget/v2" />
  </packageSources>
  <activePackageSource>
      <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSourceCredentials>
      <TFS>
        <add key="Username" value="some@emailregisteredatvsts.nl" />
        <add key="ClearTextPassword" value="somepassword" />
      </TFS>
  </packageSourceCredentials>
</configuration>

此设置在本地和我的 ci 上都有效,所以我很高兴。 我从这个 post 中得到了很多帮助:https://github.com/NuGet/Home/issues/3251