我在使用 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>
这是怎么回事?如果我将详细设置为详细,我会得到下一个堆栈跟踪:http://pastebin.com/F5WfZpqN 我已经把它放在 PasteBin 上,因为它是一个非常长的堆栈跟踪。
使用完全相同的命令和配置从 Windows 推送正在工作。但是由于我们的CI在GitLab和运行Debian Jessie的Linux机器上,我们必须让它在那里工作。
我已经让它卸载所有单体完成,但保留了 Debian 的依赖项。然后我从我的项目(nuget 3.5 和 4.0)中删除了 nuget.exe并安装了 nuget apt-get install 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 上工作,所以我很高兴。我从这篇文章中得到了很多帮助:https://github.com/NuGet/Home/issues/3251