使用中
nuget.exe Push \\share\Packages\*.nupkg -Source "https://myvsts.pkgs.visualstudio.com/_packaging/tcpcm/nuget/v3/index.json" -ApiKey VSTS
私は持った
応答ステータスコードが成功を示さない:409(競合)。
エラー
すでにアップロードされているすべてのパッケージを上書きする方法はありますか?
すでにアップロードされているすべてのパッケージを上書きする方法はありますか?
簡単な答えは「いいえ」です。JonathanMyersの答えは正しいドキュメントを指摘しています パッケージの不変性を理解する 。
パッケージの特定のバージョンをフィードに公開すると、そのバージョン番号は永久に予約されます。同じバージョン番号の新しいリビジョンパッケージをアップロードしたり、それを削除して同じバージョンの新しいパッケージをアップロードしたりすることはできません。
これは、NuGetを含む多くのパッケージクライアントが、マシン上のパッケージのローカルキャッシュを保持しているためです。クライアントが特定のpackage@version
をキャッシュすると、将来のインストール/復元リクエストでそのコピーが返されます。サーバーでpackage@version
(リビジョン1)を新しいpackage@version
(リビジョン2)に置き換えた場合、クライアントは違いを認識できません。これは、異なるマシンからの不確定なビルド結果につながる可能性があります。
そのため、削除して再アップロードできなかったとしても、すでにアップロードされているすべてのパッケージを上書きすることはできませんでした。この問題を解決する唯一の方法は、新しいバージョンのパッケージをアップロードすることです。
これはVSTSでは 意図的に禁止されています です。
URLの最後に?replace=true
を追加してみてください。または、AllowOverwriteExistingPackages=true
を試すこともできます。
visualstudio.com
がすでに supports であるかどうかはわかりませんが、Octopus DeployのNuGetサーバーの場合は、このように動作します。