推送到私有 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
我在 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