web-dev-qa-db-ja.com

Visual Studio 2015でプロジェクトを移動した後、不足しているナゲット参照を修正するにはどうすればよいですか

私はこのようなプロジェクト構造を持っていました:

 WebApp
-- WebApp
-- WebApp.sln
 WebApp.Tests
-- WebApp.Tests.csproj

移動を使用してWebApp.TestsをWebAppに移動しました(単純なクリックとWebAppフォルダーへのドラッグ)。 WebApp.slnを編集してプロジェクト参照を修正し、ロードできるようにしました。

ビルドすると、Nugetはパッケージが見つからないこと、および復元を行うことを訴えます。ソリューションでnuget.exe restoreをダウンロードして使用したところ、すべてがそこにあると報告されました。

他のStackOverflowの回答に基づいて、次のことを試しました。

  • テストプロジェクトの参照ヒントパスを編集します。 ..\WebApp\packages\PACKAGEから..\packages\PACKAGEに変更しました
  • Visual Studioをリロードする(複数回)
  • プロジェクトのパッケージフォルダーとbin/objフォルダーの内容を削除する
  • パッケージマネージャーコンソールを使用して、テストプロジェクトにパッケージを再インストールする

これらはすべて問題の修正に失敗しました。パッケージマネージャーを使用してコマンドでパッケージを再インストールしようとすると、プロジェクトのビルドと同じエラーが発生しました。最初にパッケージを復元する必要があります。

プロジェクトを修正する簡単な方法はありますか?私は本当に各パッケージを調べて手動でアンインストール/再インストールしたくありません。また、そもそもどうやってこの問題を防げたのでしょうか?プロジェクトの場所を移動する組み込みの方法はありますか?

25
Nate Hitze

プロジェクトファイルの最後に、これに似たXMLがありました。

<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('..\WebApp\packages\SPECIFICPACKAGE')" Text="$([System.String]::Format('$(ErrorText)', '..\WebApp\packages\SPECIFICPACKAGE'))" />
</Target>

..\Webapp\packagesをファイルの他の部分のように..\packagesに変更することにより、私のソリューションは問題なくコンパイルされます。

36
Nate Hitze

プロジェクトフォルダーをsrcフォルダーに物理的に移動し、パッケージが見つからないというエラーが発生するという同じ問題がありました。私の修正は、メモ帳で.csprojファイルを開き、このすべてのインスタンスを置き換えることでした。

..\packages \

これとともに:

..\..\packages \

問題を解決しました...

15
Arpi