web-dev-qa-db-fra.com

écraser les packages de pépites dans le flux des services d'équipe Visual Studio

en utilisant

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

j'ai un

Le code d'état de réponse n'indique pas la réussite: 409 (conflit).

erreur

existe-t-il un moyen d'écraser tous les packages qui ont déjà été téléchargés?

11
Ingo B

existe-t-il un moyen d'écraser tous les packages qui ont déjà été téléchargés?

La réponse simple est non. La réponse de Jonathan Myers a souligné le bon document: Comprendre l'immuabilité des paquets .

Une fois que vous avez publié une version particulière d'un package dans un flux, ce numéro de version est définitivement réservé. Vous ne pouvez pas télécharger un package de révision plus récent avec le même numéro de version, ni le supprimer et télécharger un nouveau package dans la même version.

En effet, de nombreux clients de packages, y compris NuGet, conservent un cache local de packages sur votre machine. Une fois qu'un client a mis en cache un package@version Particulier, il renvoie cette copie lors de futures demandes d'installation/restauration. Si, sur le serveur, vous remplacez package@version (Rev 1) par un nouveau package@version (Rev 2), le client ne peut pas faire la différence. Cela peut conduire à des résultats de construction indéterminés à partir de différentes machines.

Nous n'avons donc pas pu remplacer tous les packages qui ont déjà été téléchargés, même nous n'avons pas pu les supprimer et les re-télécharger. Pour résoudre ce problème, la seule façon est que télécharge les packages avec une nouvelle version .

17
Leo Liu-MSFT
5
Jonathan Myers

Essayez d'ajouter ?replace=true à la fin de l'URL. Vous pouvez également essayer AllowOverwriteExistingPackages=true.

Je ne sais pas si visualstudio.com déjà prend en charge ceci, mais c'est ainsi que cela fonctionne dans le cas du serveur NuGet d'Octopus Deploy.

4
Dávid Molnár