web-dev-qa-db-ja.com

Nugetパッケージ...はプロジェクトに存在しません...パッケージ...は既にフォルダーに存在します

私は数時間このエラーと戦っていますが、うまくいく解決策を思い付くことができません。

参照/依存関係が不適切に構成されたマルチプロジェクトソリューション内にASP.Net APIがあり、2日間修正しようとしています。

問題は(私は信じている)APIにSystem.Web.Http/System.Web.Http.WebHostが欠けていることで、明らかにMicrosoftに含まれています。 AspNet.WebApi.Core(他の複数のStack Overflowの質問ごと)。 Nuget経由でインストールしようとすると、依存関係を解決しようとすると次のエラーが表示されます。さらに、毎回このエラーが発生しました(この質問の後半のトラブルシューティングを参照)。

Screenshot of Package Manager Console

次の手順を順不同で実行しました(さまざまな組み合わせで複数回)。

  • 「更新パッケージMicrosoft.AspNet.WebApi.Core -reinstall」を実行します
  • ソリューション全体の「パッケージ」フォルダーを削除し、プロジェクトのpackages.configを削除して、パッケージの復元を試みます
  • 物理ドライブとTFSからプロジェクト全体を削除し、ゼロから再作成します(参照が正しくない状態で作成されます)
  • コマンドラインとNuget GUIの両方を使用してパッケージをインストールします
  • できるだけ新鮮な状態で起動するために、ハードドライブのさまざまな場所にソリューションをチェックアウトします
  • コンピューターを再起動する/ Visual Studioを再起動する

この時点で、それを修正する限り、非クリーンな修正で問題ありません。 APIはある時点で機能していましたが、それをTFSにチェックインしてブランチを作成し、現在ブランチで作業しています。おそらくいくつかの依存関係が含まれていませんでしたか(?).

21
Nex Terren

ソリューションを閉じてから、ハードドライブのパッケージフォルダーに移動し、その内容をすべて削除します。 Visual Studioでアプリケーションを再度開くと、自動的にパッケージの復元が試行されます。ソリューションをクリーンアップしてビルドします。

キャッシュをクリアすると、問題が解決しました。 [ツール]> [オプション]> [NuGetパッケージマネージャー]> [全般]メニューにキャッシュをクリアするオプションがあり、すべてのNuGetキャッシュをクリアと呼ばれます。

まず、パッケージマネージャーコンソールから特定のNuGetパッケージをアンインストールします

次に、右クリック->プロジェクトのアンロードにより、このナゲットパッケージが参照されているプロジェクトをアンロードしてください。

アンロードした後、プロジェクトを右クリックし、「{プロジェクト名} .csprojを編集」を選択します

以前にアンインストールしたXML内でNuGetパッケージエントリを見つけて削除します。

パッケージマネージャーコンソールからパッケージを再インストールしてください...

2
Antho

これを試してください。それは私の問題を解決しました。

Goto VS TOOLS> NuGet Pacakage Manager>パッケージマネージャーの設定

[すべてのNuGetキャッシュをクリア]ボタンをクリックします

2
Newbie

他の答えはどれも私にとってはうまくいきませんでした。 VSのインストール、元に戻す、再起動の無限ループが続き、何の進展もありませんでした。

私がやらなければならなかったのは:

  1. VSを閉じます。
  2. 問題のあるパッケージをパッケージフォルダーから削除します。
  3. Packages.configファイルを手動で編集し、インストールに必要なパッケージ名とバージョンを追加します。
  4. ソリューションを再度開いたとき、プロジェクトを右クリックし、「NuGetパッケージを管理する」と言って、バナーに表示される[復元]ボタンをクリックしました。これにより、インストールを拒否したパッケージがインストールされました。

大声で叫ぶために!マイクロソフトは、パッケージ管理を適切に行う方法について yarn からレッスンを受ける必要があります。

0
NH.