overwrite nuget packages in feed on visual studio team services

17,679

Solution 1

is there a way to overwrite all packages that have already been uploaded?

The simple answer is No. Jonathan Myers`s answer pointed out the correct document: Understand immutability of packages.

Once you publish a particular version of a package to a feed, that version number is permanently reserved. You cannot upload a newer revision package with that same version number, or delete it and upload a new package at the same version.

That because many package clients, including NuGet, keep a local cache of packages on your machine. Once a client has cached a particular package@version, it will return that copy on future install/restore requests. If, on the server, you replace package@version (rev 1) with a new package@version (rev 2), the client is unable to tell the difference. This can lead to indeterminate build results from different machines.

So we could not overwrite all packages that have already been uploaded, even we could not delete them and re-uploaded. To resolve this issue, the only way is that upload the packages with a new version.

Solution 2

This is intentionally prohibited in VSTS.

Solution 3

Try adding ?replace=true at the end of the URL. Alternatively you could try AllowOverwriteExistingPackages=true.

I'm not sure if visualstudio.com already supports this, but this is how it's working in case of Octopus Deploy's NuGet server.

Share:
17,679
Ingo B
Author by

Ingo B

I'm the "IT-Guy" I'm in <3 with Powershell and living the IT life. "Trying to do the best" is not enough for me, i either get things to work or i failed. And since im terribly bad at writing such forms i better stop before it get's worse.

Updated on June 06, 2022

Comments

  • Ingo B
    Ingo B almost 2 years

    while using

    nuget.exe push \\share\Packages\*.nupkg -Source "https://myvsts.pkgs.visualstudio.com/_packaging/tcpcm/nuget/v3/index.json" -ApiKey VSTS
    

    i got an

    Response status code does not indicate success: 409 (Conflict).

    error

    is there a way to overwrite all packages that have already been uploaded?