このプロジェクトは、このコンピューターに存在しない NuGet パッケージを参照しています。質問する

このプロジェクトは、このコンピューターに存在しない NuGet パッケージを参照しています。質問する

昨日は動作していた ASP.NET MVC5 アプリケーションがありますが、ビルドしようとすると次のエラーが発生します。

このプロジェクトは、このコンピューター上に存在しない NuGet パッケージを参照しています。

不足しているパッケージを NuGet が自動的にダウンロードしてインストールできるようにする 2 つのオプションをオンにしました。また、パッケージ フォルダー内のすべてのファイルを削除してから NuGet で再ダウンロードしてみました。また、NuGet を開いて更新プログラムを探すと、インストールする必要のあるものは何もないと表示されます。この驚くほど厄介な問題を解決するために他に何をすればよいのかわかりません。

また、プロジェクトを右クリックしてそのオプションを選択し、NuGet の復元を有効にしました。すると、NuGet フォルダーとそのフォルダー内の 3 つの項目が追加されましたが、問題は解決されませんでした。再構築を試みましたが、同じエラーが発生します。

ベストアンサー1

私の場合は、.csproj ファイルから次の内容を削除する必要がありました。

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

実際、このスニペットでは、エラー メッセージがどこから来ているのかがわかります。

私はMSBuild統合パッケージ復元から自動パッケージ復元に変換していました(https://learn.microsoft.com/en-us/nuget/consume-packages/package-restore#migrate-to-automatic-package-restore

おすすめ記事