web-dev-qa-db-ja.com

VS2012でnugetを使用するとエラーが発生する「パッケージがありません」

VS2012内からプロジェクトをビルドすると、次のエラーメッセージが表示されます

This project references NuGet package(s) that are missing on this computer. 
Enable NuGet Package Restore to download them. 

不足しているパッケージをダウンロードするNuGetのnugetオプションがあります。

picture of nugget options

それでも、まだエラーが発生します。ナゲット2.7がインストールされています。 VS2012アップデート3

30
John S

Danがほのめかしたように、ソリューションに.nugetフォルダーがある場合(パッケージの復元を有効にすると)、 http://docs.nuget.org/docsに従って、nuget 2.7の自動パッケージ復元機能が無効になります/ workflows/migrating-to-automatic-package-restore

パッケージの自動復元が無効になっている場合、プロジェクトターゲットファイルをインストールするパッケージは、ソリューションでそのパッケージを手動で復元するまでビルドを失敗させます。これについては、 http://blogs.msdn.com/b /dotnet/archive/2013/06/12/nuget-package-restore-issues.aspx 。 (リンクに記載されている回避策は、nuget 2.7の自動パッケージ復元が利用可能になったため、時代遅れになっていることに注意してください。)

したがって、これらの両方が当てはまる場合は、.nugetフォルダー内のNuGet.targetsファイルを削除すると、NugetはMSBuildを呼び出す前に不足しているパッケージを復元します。 .nu​​getフォルダー内のnuget.exeも使用できなくなるため、削除することもできます。

21
Jonathan Roeder

以下の手順に従ってください:

手順1:ソリューションを右クリックしてNuget Package Restoreを有効にしてください[下のスクリーンショットを参照]

Enable Nuget Package Restore

手順2:[手順1に従って問題/エラーが解決されない場合はこれを実行]それでも問題が発生する場合は、メモ帳で.csprojファイルを開き、次のようなパッケージパスを確認してください

Package Path

したがって、ソリューションのディレクトリ構造は次のようになります。

\SolutionDirectory\

パッケージディレクトリ:

\SolutionDirectory\packages

プロジェクトディレクトリ:

\SolutionDirectory\ProjectName\ProjectName.csproj

[エラーが発生している]この.csprojをメモ帳で開き、パッケージパスを検索して、関連するパスに更新してください。

例えば.csprojファイルが含まれています。csprojファイルに..\..\packagesが含まれている場合、..\packagesでそのパスを更新します

26
Nirav Mehta

答えは私が解決策を見つけるのに非常に役立ちます。特定の問題の解決にはもう1つの手順が必要なので、他の人に役立つ場合はここで報告します。私が得ていたエラー:

Error   117 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 ..\..\Windows Phone 8\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets.

私は答えに従い、提案されたものをすべて削除しましたが、エラーが表示され続けました。 .csprojの次の行を削除することで、ついにそれを取り除きました。

<Error Condition="!Exists(...
10
Hong
  1. NuGetを削除
  2. プロジェクトファイルからNuGetに依存するメモ帳の.targetsで削除します
  3. NuGetの最新バージョンをインストールする
  4. Visual Studioを再起動し、プロジェクト/ソリューションを再度開きます。
  5. 必要に応じて、最新バージョンのNuGetで新しい.nugetファイルを追加できます
6
Petar

メモ帳でcsprojファイルを開き、Error Conditionここからの要素(またはこれらの条件を機能させる):

<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'))" />
    <Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.101.0\build\net45\System.Data.SQLite.Core.targets'))" />
  </Target>
2
opewix

これを試して、

  1. リストアイテム
  2. ソリューションを右クリック
  3. nuGetの管理をクリックします
  4. 左下隅の設定をクリックします
  5. nuGetに不足しているパッケージのダウンロードを許可するをチェックします。
0
semmie Asrat

ソリューションを右クリックし、「NuGetパッケージの復元を有効にする」だけで問題が解決します。

0
arpan desai

ソリューションから.nugetディレクトリが存在する場合は削除します。プロジェクトファイルを編集し、.nugetフォルダーへの参照を含む要素ImportおよびTargetを削除し、プロジェクトを保存して再読み込みします。

0
DeeArgee