NuGet によってインストールされたいくつかのパッケージをアンインストールしようとしています。ここで説明されているドキュメントによると、インストール済みのパッケージを選択すると、[アンインストール] ボタン (下の最初のスクリーンショット)が表示されるはずです。ただし、[管理] ボタンしか表示されません (下の 2 番目のスクリーンショット)。パッケージをアンインストールする方法を教えてください。
6 に答える
最後に、.sln ソリューション ファイルを手動で編集し、次の行を削除する必要があることがわかりました。
GlobalSection(ExtensibilityGlobals) = postSolution
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35
EndGlobalSection
ソリューション ファイルで上記の行を削除すると、これらのパッケージは NuGet パッケージ ウィンドウの [インストール済みパッケージ] ページに表示されなくなりました。残っているパッケージは 1 つだけで、[アンインストール] ボタンが表示されます。
編集: ソリューション ディレクトリのパッケージ フォルダーも削除する必要がありました。
リンク先の NuGet ドキュメント ページの「インストール済みパッケージの管理」セクションまでスクロールすると、[管理] ボタンと説明が表示されます。
NuGet 1.4では、ソリューション エクスプローラーでソリューションを選択し、1 つの手順で複数のプロジェクトからパッケージを追加/削除できるようにする新しい機能が導入されました。以前は、ソリューション エクスプローラーで各プロジェクトを選択し、各プロジェクトからパッケージを 1 つずつ追加/削除する必要がありました。
[管理] ボタンをクリックすると、[プロジェクトの選択] ダイアログが表示され、NuGet パッケージをアンインストールするプロジェクトのチェックを外すことができます。
ソリューション エクスプローラーでソリューションではなくプロジェクトを選択すると、選択したプロジェクトからパッケージを追加/削除できます。この場合、[インストール] ボタンと [アンインストール] ボタンのみが表示されます。
場合によっては、パッケージのアンインストールを禁止する依存関係がありますが、とにかくアンインストールする必要があります (つまり、依存関係のあるパッケージの 2 つの異なるバージョンをうっかりインストールしてしまった場合)。
これが発生した場合、パッケージをアンインストールする唯一の方法はアンインストールを強制することであり、これはパッケージ マネージャー コンソールを介してのみ行うことができます。
コンソールに移動する前に、[NuGet パッケージの管理] ウィンドウを開き、パッケージをクリックすると右側のペインに表示されるパッケージの ID とバージョンを書き留めておく必要があります。
次に、[管理] ウィンドウを閉じ、コンソール (パッケージ マネージャー コンソール) を開いて、次のコマンドを実行します。
uninstall-package -Id YourPackageId -Force -Version YourPackageVersion
-Forceパラメータに注意してください。例えば
uninstall-package -Id Unity -Force -Version 3.0.1304.0
このコマンドを使用すると、バージョン 2 と並行してインストールされているバージョン 3 をアンインストールできますが、これは [管理] ウィンドウでは実行できません。
最近、同様の問題がありました。私のプロジェクトは正常に動作しましたが、EnterpriseLibrary 5.0.505 がソースから欠落していると表示されたため、NuGet パッケージ マネージャーを介してパッケージを追加または削除できなくなりました。しかし、それを復元または削除しようとすると、「パッケージ 'EnterpriseLibrary' のバージョン '5.0.505. が見つかりません」というエラーで失敗しました。
これをたどって、packages.config ファイルに次の参照があることを突き止めました。
<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" />
これを最近パッケージを追加した他のソリューションと比較すると、次のように変更され、問題が修正されました。
<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" />
package.config ファイルを手動で編集したことがないため、不一致がどのように発生したかはわかりません。構成ファイルを更新せずにパッケージを最初に含めてから参照が変更された可能性があります...?
依存関係のある Code first lib CTP5 を削除する際に問題が発生しました。アンインストールしてもメッセージは返されず、何も削除されませんでした。削除する必要がある packages.config から参照を削除します。その後、それは nuget に表示されなくなり、再インストールするか、それなしで続行できます。
VS IDE の [NuGet パッケージの管理] ダイアログまたはパッケージ マネージャー コンソールを使用した後、packages フォルダーではなく、パッケージの一部であるファイル システム上のソリューション ファイルまたはその他のファイルを手動で削除する必要がある場合があります。
ASP.NET Web アプリケーション プロジェクト/ソリューションにマスター ページ、ユーザー コントロール、クラス コード ファイル、packages.config ファイルを追加する Microsoft.AspNet.FriendlyUrls パッケージを評価していました。[NuGet パッケージ] ダイアログを使用してパッケージを削除する前に、ソリューションからこれらのファイルを手動で元に戻す/削除するのを間違えました。その時点ですべてが混乱しました。
他の人が言ったように、パッケージフォルダーを削除することが解決策でした。しかし、その後、そのフォルダーの外にある他のファイルも削除する必要があることを手動で把握する必要がありました。