web-dev-qa-db-ja.com

NuGetパッケージが見つかりません

私はこの問題を調べましたが、解決策はどれもうまくいきませんでした。 Visual Studio Professional 2015がインストールされており、TFSを使用しています。私のNuGetのバージョンは3.1.6です。この問題は私のC#Web API/MVCプロジェクトでのみ起こっています。

以下のエラーが出ます。

このプロジェクトは、このコンピュータに存在しないNuGetパッケージを参照しています。それらをダウンロードするには、NuGet Package Restoreを使用してください。詳細については、 http://go.Microsoft.com/fwlink/?LinkID = 322105 を参照してください。不足しているファイルは..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.propsです。

  1. 私のソリューションには.nugetフォルダーがありません。
  2. ソリューションにpackagesフォルダがあり、それを削除すると、NuGetが依存関係を再構築しているように見えますが、プロジェクトにはまだ上記のエラーがあります。
  3. TFSからプロジェクトを削除しようとしましたが、修正されませんでした。
  4. 上記のエラーに加えて、プロジェクト内のすべての参照に黄色の警告サインが付いており、それらが欠落していると言っています。
  5. プロジェクトのNuGet Package Managerを確認したところ、「欠けている」ものはすべて、その隣に緑色のチェックマークが付いています(Microsoft.Net.Compilersなど)。
  6. 私は新しいWeb API/MVCプロジェクトを追加しようとしましたが、Owinなどのほとんどの参照に黄色の警告サインが付いていないという同様の問題に直面しました。
242
Ques Tion

今日も同じエラーがありました(まったく同じパッケージがありません)。 MVC + Web APIプロジェクトも作成しました。

アプリファイル(.csprojを含む)ファイルを別の場所に移動したために発生しました。手動で.slnファイルを更新しましたが、すべてのパッケージの依存関係は(Visual Studio 2015).csprojファイルに保存されています。

.csprojファイルを編集し、(packagesフォルダを含む)solutionフォルダへの相対パスを修正することで、問題が解決しました。

226
Tiberiu Craciun

私は.csprojファイルからこのコードを削除することによって私の問題を解決しました:

<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>
312
Dipal Kothari

注意 - これはプロジェクトだけでなくソリューション全体のパッケージを更新します。

ソリューションの構築中にエラーが発生するもう1つ不足しているnugetパッケージがある場合は、[ツール]> [Nugetパッケージマネージャ]> [パッケージマネージャコンソール]からNugetコマンドコンソールを使用して次のコマンドを使用します。現在のすべてのパッケージを再インストールします。

アップデートパッケージ - 再インストール

41
Shyam Bhagat

私はこの正確なイライラするメッセージを持っていました。最後に私にとってうまくいったのは、/ packages内のすべてのファイルとフォルダーを削除し、VSに次のビルドのすべてを再取得させることでした。

17
Ryan Russon

Tiberiuは正しいです。ファイルが移動され、この問題が発生したため、.csprojファイルを編集する必要がありました。

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

ファイルの一番上と一番下で変更しました

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
12
Tom Stickel

この問題を解決するために、.csprojファイルから次のコードを削除しました。

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />
11
Mohsin Awan

2つの答えの組み合わせは私のために働いた。まず、1.0csバージョンへの参照を削除するように.csprojファイルを変更しました。

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

そしてそれから

Update-Package -Reinstall

から、それは働いた。

8
Prakrithi

NuGet Package Restoreを有効にするだけです。 あなたの解決策を右クリックし、「Enable NuGet Package Restore」を選択してください。

Right click your solution > choose 'Enable NuGet Package Restore'

これはNuGet.Configファイルで.nugetフォルダを作成し、私の問題を解決します。

7
Nicow

私にとっては、問題は、ソリューションを新しいフォルダにコピーして開くと、以下に示すようにNugetフォルダが見つからなかったことです。このフォルダをコピーしたところ、すべてうまくいきました。注:これと同じフォルダがソース管理にありましたが、このソリューションプロジェクトにはありません。1つ上のディレクトリにありました。

enter image description here

5
John Peters

私はVS2012を使用していて同じエラーに直面しています。次のTargetタグを.csprojファイルから削除し、エラーなしでコンパイルを開始しました。

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>
5
MAK

ここでいくつかの答えを詳しく説明すると、はい、.csprojファイルから次のブロックを削除することができます。

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

これで問題は解決しましたが、私の場合は、.NET.Compilerと.CodeDom.Providersへの参照が、バージョンが異なることに気付きました。

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

私のpackages.configが以下のものだけを参照していた場合:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

.csprojファイルから1.0.0項目を削除すると、問題が解決しました。

5

このようにして私のエラーが解決されました:Visual Studio 2015+ソリューションエクスプローラでアップデートのために.csprojファイルを開くには

プロジェクト名を右クリック - >プロジェクトのアンロード

プロジェクト名を右クリック - >編集.csproj

次の行を削除してください。

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

プロジェクト名を右クリック - >プロジェクトの再読み込み

最後にソリューションを構築しましょう。

3
Abdullah

私が抱えていた問題(すべてではないがいくつかのパッケージがビルドサーバーに復元されている)にここで遭遇した人のために、私のためのパズルの最後の部分は私のソリューションのルートにNuGet.configを追加して、 David Ebboがここで説明したようにファイル: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

Ebboのブログ投稿から、私のためのファイルの内容は単純です

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

更新:

NuGet APIのURLがv3で変更されました(2016年9月現在)。 からhttps://www.nuget.org/ /

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
2
madannes

私の場合はうまくいく解決策 - Visual Studio 2015 Enterprise、プロジェクト.NET 4.6.1

  1. Web開発者ツールをインストールする

Visual studio installation wizzard

1
Norbert Rozmus

エラーメッセージは完全に正確です。私はすべてのトリックを試しましたが、どれもうまくいきませんでした。プロジェクト(単純なMVC Webアプリケーションテスト)は、Windows 8.1 VS 2015 CommunityからWindows 10の新しいテストボックスに移動しました。VS2015の最新の更新プログラムがすべて適用されました。私は新しいバージョンのコンパイラパッケージさえもインストールできませんでした。

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

私はついにMicrosoft.Net.Compilers.1.0.0を古いプロジェクトから新しいプロジェクトにコピーしたところ、うまくいきました。それから私は他のパッケージを新しいバージョンにアップデートし始めることができました。私にとっては、小さなプロジェクトアップグレードプロセスのバグのように見えます。

注: 元のプロジェクトはVS 2015で作成されたもので、従来の方法論はありません。

1
Peter Ennis

私にとっては、パッケージは正しいパスの下にありましたが、パッケージフォルダー内のビルドフォルダーはありませんでした。私はそれが欠けていると言ったすべてのパッケージを削除してソリューションを再構築し、ビルドフォルダーと.propsファイルを正常に作成しました。それで、エラーメッセージは、何かがミスだったことを私に知らせることにおいて正しかったです。

1
Ian Hale

私はGitのから展開アズールで失敗したビルド、として、この問題を持っていました。

私の.gitignoreが..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.propsからbuildフォルダを除外したが判明。

buildフォルダがGitリポジトリにコミット(力)だったら、問題は解決しました。

1
Neil Thompson

私はこのエラーを修正しました、実際に私は私のパッケージフォルダーと.csprojファイル参照でMSTest.TestAdapter(1.1.0)を指していたMSTest.TestAdapter(1.3.2)の異なるバージョンを持っていました。すべてのMSTest.TestAdapter(1.1.0)をMSTest.TestAdapter(1.3.2)に置き換えましたが、これで問題は解決しました。

1
Irshad Ahmed

私にとって、私のgitignoreファイルは私のpackagesフォルダを無視していました。次のgitignore行が問題を引き起こしていました -

**/packages/*

削除し、それは私のパッケージフォルダを復元しました。これが他の人に役立つことを願っています。

0
bsod_

私にとっての問題は、フルファイルパスが大きすぎるため、NuGetが自動的にパッケージを取得/更新できなかったことです。 深くネストされたフォルダの代わりに私のドキュメント内のフォルダに私の解決策を移動することによって修正されました

次に、ソリューションを右クリックして[Restore NuGet Packages]を選択し(それをビルドして実行させるだけであればおそらく不要です)、次に[Manage NuGet Packages for Solution]を選択してすべてのパッケージを取得できます最新バージョンにアップデートしました。

これは、MicrosoftのWebサイトからダウンロードしたサンプルのASP MVCアプリケーションの解決策です。

0
pkr298

私は同じ問題を抱えていました、それは私が参照していたプロジェクトの1つがソリューションディレクトリの外にあったことが判明しました(そしてそれ故に同じ '/ packages'フォルダを共有しませんでした)。私にとって効果的な解決策は、参照プロジェクトの解決策を開き、そこで構築することでした。そのプロジェクトが構築されると、エラーは消えました。

0
bmontalvo

私の場合、*。csprojファイルに<RestorePackages>true</RestorePackages>がありませんでした。以前の回答で見たコードのスニペットを削除する必要はありませんでした。

0
Michal

これの一般的な原因は別のユーザー名です、Nugetはすべてを"C:\Users\USER_NAME\source\repos"にダウンロードします。プロジェクトを別のユーザー名で以前にセットアップした場合、.csprojファイルにはその古いファイルが含まれている可能性がありますそこにユーザー名を入力し、単にそれを開いて"C:\Users\_OLD_USER_NAME\source\repos""C:\Users\NEW_USER_NAME\source\repos"に検索置換します。

0
paul-2011

多くの人が<Target>タグを削除することでそれをコンパイルできるようにするかもしれないと提案しました。それでも、テストプロジェクトに使用すると副作用があることに注意してください。

コンパイル中にMSTest.TestAdapter nugetパッケージに関連したエラーが発生しました。 <Target>タグを削除することでその問題を解決しました。ビルドは成功しましたが、テストメソッドは発見不可能になりました。 Test Explorerはそのプロジェクトのテストメソッドをリストしませんし、Run TestまたはDebug Testも同様には動作しません。

Visual Studio 2017.Net framework 4.7を使用しているときに私はこれに遭遇しました、それは他のバージョンで非常によく起こることができます

0
Saravanan

私はこの質問が古いことを認識しています、しかし私は今日この同じ状況に遭遇し、最近この問題を発見した人のために私の2セントを投入したいと思いました。私が手動でソリューションのサブフォルダーに移動してから削除し、Visual Studio 2017を使用してソリューションに追加したASP MVCプロジェクトでは、上記のエラーが発生していました。 "lib"と "packages"フォルダをMVCプロジェクトと同じサブフォルダのルートに移動することで私の問題は解決しました。

0
J.P. Sietsma

ヒントとして提案されたエラーメッセージを使用することもできます。解決方法のためにManage Packagesを見つけて、missing missing nugetパッケージをクリックしてください。

それでおしまい

0
Parama Dharmika

私のソリューションのフォルダは ".NET Project"という名前でした。 「NETプロジェクト」に名前を変更することによってすべてが正常に機能しました。だから最初のドットは悪い考えでした。

0

これに対する解決策が見つからないため、prebuild.ps1という名前のソリューションのルートディレクトリにnuget.exeとpowershellスクリプトのコピーを次の内容で追加しました。

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

私は自分のビルドで ビルド前のスクリプトパス でこのPowerShellスクリプトを呼び出しました。 enter image description here

0
Nick Rubino

ソリューションファイルとプロジェクトフォルダと一緒にpackagesフォルダをコピーしたときに、Mineが動作しました。私はちょうど前の場所からpackagesフォルダをコピーしませんでした。

0
user1429899

WebConfigのCompiler Optionをコメントにします。

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

パッケージ構成ファイル内のパッケージの最新バージョンを更新する

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

問題がなければ再構築し、続行する必要はない場合は、プロジェクトを右クリックし、[プロジェクトのアンロード]をクリックします。もう一度プロジェクトを右クリックし、.csprojファイルを編集します。

Codedomのパスを検証し、それが以前のパスにnet45を持っていなかった、手動でそれを追加する、保存する、読み込む、再構築する。それはうまくいくはずです。

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
0
Vikas Bansal

これがだれにも役立つかどうかはわかりませんが、ソリューションファイルをTFSに保存せずにローカルマシンからソースコードを削除したときに、この問題が発生しました。 (最初の開発中は、ソリューションエクスプローラーでプロジェクトを右クリックしてチェックインしていましたが、ソリューション自体をチェックインすることを忘れていました)。 .slnファイルはありません。そのため、VSでは、ファイル - >ソース管理 - >詳細 - サーバーから開くを選択し、.csprojファイルを開きました。そこから、[Save All]を実行したところ、.slnファイルを保存する場所を尋ねられました。この.slnファイルを他のフォルダ(App_Data、App_Startなど)と一緒にプロジェクトディレクトリに保存していました。最上位ディレクトリではありません。プロジェクトフォルダと同じレベルにあるように、プロジェクトフォルダと同じディレクトリに.slnファイルを保存する必要があることがわかりました。すべての私の道は解決し、私はそれを再び造ることができた。

0
chersull_99

DevOps /ビルドエンジニアにとっては、おそらくこのSLAを実行しているnuget restoreを影響を受けたSLNに対して修正するか、SLNがなければプロジェクトを作成することができます。私たちのすべてのUWPプロジェクトのために私たちのCI/CDビルドのためにこれをしなければなりません。

  1. NugetがVisual Studioまたはスタンドアロンのいずれかでビルドスレーブにインストールされていることを確認してください。後者の場合は、PATHにあることを確認してステップ2をスキップしてください。
  2. VS Dev CMDコンソールを開くか、すでに開いているコンソールからロードします。以下の手順に従って実行できます。
    VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    または
    VS2017 call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. SLNがない場合はcall nuget restore MyStuff.SLNまたはcall nuget restore MyStuff.csproj
0