21

nugetに新しいパッケージを追加しました(プロジェクトにパッケージの参照を追加することについては話していません)。他の人がプロジェクトでそのパッケージを消費/使用できるように、サーバーに新しいパッケージを追加しました。

パッケージ名がParser1.0.0.0.nupkgだったとしましょう

問題は、依存関係を1つ追加するのを忘れたことです。ここで、正しいものを編集または削除して、もう一度追加したいと思います。ただし、バージョン番号は変更したくありません。

誰もがそれを行う方法を知っていますか?

4

6 に答える 6

17

パッケージの完全な削除はサポートされていませんが、リストの表示方法を制御できます。(nuget.orgについて話していると仮定します)。

サインインした後、パッケージの削除ページに追加情報があります。例:https ://nuget.org/packages/Parser/1.0.0.0/Delete 。

パッケージの削除ページからnugetの説明を引用します。

「パッケージを削除できないのはなぜですか?私たちのポリシーは、パスワード、悪意のある/有害なコードなどを含むパッケージなど、本当にそれを必要とするNuGetパッケージのみを完全に削除することです。このポリシーは、他のパッケージで採用されているポリシーと非常によく似ています。 RubyGemsなどのマネージャー。

パッケージのリストを解除すると、パッケージはNuGetで使用できなくなります。このパッケージは、主に3つの理由から、依存関係として引き続きダウンロードできます。

他のパッケージはそのパッケージに依存する場合があります。これらのパッケージは、必ずしもこのギャラリーにあるとは限りません。パッケージをコミットせずにNuGetを使用しているユーザー(パッケージの復元)が破損しないようにします。重要なコミュニティ所有のパッケージが大量に削除されないようにするのに役立ちます。」

以前のパッケージのリストを解除し、依存関係を追加した後、バージョンを1.0.0.1に上げることをお勧めします。

于 2012-07-25T17:24:13.707 に答える
10

プライベートNuGetGalleryサーバーを管理し、MSSQL Serverデータベースにアクセスできると仮定すると、ギャラリーの存在に関する知識を削除することで、パッケージを削除できます。

おそらくこれを使用するべきではありませんが、科学の観点から、使用しない正当な理由を無視する方法は次のとおりです(これにより、「MyNastyPackage」というパッケージのすべてのバージョンが削除されることに注意してください)。

DECLARE @PackageRegistrationKey int
SELECT @PackageRegistrationKey = [Key]
 FROM PackageRegistrations
 WHERE Id = 'MyNastyPackage'

BEGIN TRANSACTION
DELETE pf
 FROM [NuGetGallery].[dbo].[PackageFrameworks] pf
 JOIN Packages p ON pf.Package_Key = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE pa
 FROM [NuGetGallery].[dbo].[PackageAuthors] pa
 JOIN Packages p ON pa.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE gs
 FROM [NuGetGallery].[dbo].[GallerySettings] gs
 JOIN [PackageStatistics] ps ON gs.DownloadStatsLastAggregatedId = ps.[Key]
 JOIN Packages p ON ps.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE ps
 FROM [NuGetGallery].[dbo].[PackageStatistics] ps
 JOIN Packages p ON ps.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE pd
 FROM [NuGetGallery].[dbo].[PackageDependencies] pd
 JOIN Packages p ON pd.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE
 FROM [NuGetGallery].[dbo].[Packages]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE por
 FROM PackageOwnerRequests por
 JOIN PackageRegistrations pr ON pr.[Key] = por.PackageRegistrationKey
 WHERE pr.[Key] = @PackageRegistrationKey
DELETE pro
 FROM PackageRegistrationOwners pro
 JOIN PackageRegistrations pr ON pr.[Key] = pro.PackageRegistrationKey
 WHERE pr.[Key] = @PackageRegistrationKey
DELETE FROM PackageRegistrations
 WHERE [Key] = @PackageRegistrationKey
COMMIT TRANSACTION
于 2014-02-21T11:37:18.077 に答える
10

プライベートNuGetサーバーで可能です。NuGetの削除コマンドを使用します。

nuget delete MyPackage 1.0

更新:サーバーによってロックされたままであるため、バージョン番号を再利用できないため、これでもOPの問題に対処できません。パッケージの特定のバージョンを完全に削除する安全な方法はありません。

于 2017-12-08T16:04:49.537 に答える
2

次に、公開に成功すると、NuGetからメールが届きます。

彼らが書いたので、この電子メールに目を向けてください:

If this was not intended, please "contact support".

[サポートに連絡]をクリックすると、NuGetのパッケージ管理にリンクされ、削除する理由を説明してから、削除するアクションを実行できます。

それで全部です!

于 2020-02-09T12:48:01.173 に答える
1

パッケージのサブメニュー(左側)で[パッケージの削除]をクリックすると、次のことを示す別のページにリダイレクトされます。

パッケージを完全に削除する必要がある場合は、[サポートへのお問い合わせ]リンクをクリックしてください。

私の場合、これは完全に正常に機能しました。ステージング環境ではなく、本番環境のNuGetサーバーに誤ってアップロードしたため、パッケージの削除をサポートに依頼しました。

ただし、最初にstaging.nuget.comを使用してパッケージをテストすることを常にお勧めします。次に、テスト用にステージング環境をVisualStudioのパッケージリポジトリとして追加できます。

于 2014-11-12T19:40:35.920 に答える
0

特定のケースでは、nugetサーバーにアクセスできる場合は、.nuspecファイルを手動で編集して依存関係を追加できます。nugetサーバーのデータディレクトリ(.nupkgファイルが格納されている場所)を開き、パッケージを見つけて、NugetPackageExplorerツールを使用するか、メタデータを手動で編集します(.nupkgファイルはzipアーカイブです。開き、YourPackageName.nuspecファイルを編集して追加します。依存関係)。これは次のようになります。

<dependencies>
  <dependency id="RouteMagic" version="1.1.0" />
  <dependency id="RouteDebugger" version="1.0.0" />
</dependencies>
于 2014-10-05T21:53:34.257 に答える