【C#】NuGetパッケージを再インストールする

環境

  • Windows10
  • VisualStudio 2019

状況

以下でパッケージのキャッシュをクリアしたらエラーが出て「発行」できなくなった。

ツール > オプション > NuGet パッケージ マネージャー > すべての NuGet キャッシュをクリア

次に、Webプロジェクトを発行すると以下エラーが出て完了しない。

warning MSB3106
アセンブリの厳密な名前 "${DLLのパス}"
は、見つからなかったパスであるか、形式が正しくない完全アセンブリ名です。

error MSB3030:
ファイル "${DLLのパス}"
は見つからなかったためコピーできません。

手順(1)

以下手順でパッケージを復元する。

  • VisualStudio を閉じる
  • 隠しファイルを表示 > .vs ファイルを削除
  • VisualStudio を立ち上げてパッケージマネージャーコンソールを表示
// 以下を入力する
update-package -reinstall

PC のディスクの容量が少なくなったからキャッシュ削除したら動かなくなって焦りました。再インストールは IDE の NuGet パッケージの管理 からは実行できないのでパッケージマネージャーコンソールからコマンドを入力して実行する必要があります。

手順(2)

以下フォルダにパッケージが見つからないといわれる場合はこれかもしれません。

%userprofile%\.nuget\packages\${ライブラリ名}\${バージョン}
  • 新しいソシューションとプロジェクトを .NET Frameowrk 4.7.2 とか 4.8 で作成
  • NuGet パッケージマネージャーを平出 ${ライブラリ名}\${バージョン} を選択しインストール

これでキャッシュフォルダにパッケージが配置されます。既存のプロジェクトで既に別のバージョンをダウンロード済みだとうまくいかないかもしれません。

プロジェクトは .NET Core や .NET だとではなく .NET Framework を選択したほうがよさそう。