使用
nuget.exe push \\share\Packages\*.nupkg -Source "https://myvsts.pkgs.visualstudio.com/_packaging/tcpcm/nuget/v3/index.json" -ApiKey VSTS
我有一个
响应状态代码不表示成功:409(冲突)。
错误
有没有办法覆盖已上传的所有软件包?
答案 0 :(得分:15)
有没有办法覆盖已上传的所有软件包?
简单的答案是否。乔纳森迈尔斯的回答指出了正确的文件:Understand immutability of packages。
将特定版本的软件包发布到Feed后,该版本号将永久保留。您无法上传具有相同版本号的较新版本包,或删除它并以相同版本上载新包。
因为许多软件包客户端(包括NuGet)在您的计算机上保留了软件包的本地缓存。一旦客户端缓存了特定的package@version
,它将在未来的安装/恢复请求中返回该副本。如果在服务器上将package@version
(rev 1)替换为新的package@version
(rev 2),则客户端无法区分。这可能导致不同机器的不确定构建结果。
因此我们无法覆盖已上传的所有软件包,即使我们无法删除它们并重新上传。要解决此问题,唯一的方法是使用新版本上传软件包。
答案 1 :(得分:5)
尝试在网址末尾添加?replace=true
。或者,您可以尝试AllowOverwriteExistingPackages=true
。
我不确定visualstudio.com
是否已supports这个,但这就是Octopus Deploy的NuGet服务器的工作方式。
答案 2 :(得分:5)
这是VSTS中的intentionally prohibited。