アセットファイルproject.assets.jsonが見つかりません。NuGetパッケージの復元を実行する


261

nopCommerce(.NET Coreで記述されています)を使用しようとしていますが、プロジェクトを実行したいときに52のエラーが発生し、nugetパッケージの復元を実行します

アセットファイル〜\ obj \ project。assets.json 'が見つかりません。NuGetパッケージの復元を実行して、このファイルを生成します。Nop.Web.MVC.Testsote

ソリューションを右クリックして[Nugetパッケージの復元]を選択すると、次のメッセージが表示されます。

すべてのパッケージがすでにインストールされており、復元するものはありません。

しかし、それらの52個のエラーはまだあり、ツール-> NuGetパッケージマネージャー->ソリューションのNuGetパッケージの管理でソリューション に何もインストールされていません。また、最近VS2017を15.5.4に更新しました


NuGetが復元することに同意しましたか?ツール、オプションに移動し、NuGetを検索して、「NuGetを許可...」オプションをチェックします。
imps

Macを使用している人がいる場合、この問題が発生し、リポジトリパス(git pull中に作成されたパス)のスペースを削除して修正しました。My%20ProjectはMyProjectになります。
デビッドハーグ

回答:


456

ツール> NuGetパッケージマネージャー>パッケージマネージャーコンソールからこのエラーを修正するには、次のコマンドを実行します。

dotnet restore

このエラーは、dotnet cliが必要なすべてのファイルを最初に作成しないために発生します。dotnet復元を実行すると、必要なファイルが追加されます。


21
これはビルドサーバーの修正でもありました。通常のNuGet復元後に「dotnet復元」を実行するコマンドラインステップを追加しました。
マーク

24
MSBuildからも実行できます:msbuild MySolution.sln / t:Restore
Der_Meister

3
/ D:Restoreオプションを追加する@Der_Meisterのソリューションは私にとってはうまくいきましたが、ソリューションを2回ビルドする必要がありました(2つの個別のビルドステップ)。最初に/ t:Restoreオプションを使用し、次にそれを使用せずに。
マイケル

16
ビルド;復元:@Michael、MSBuildのMySolution.sln /トン試す
Der_Meister

8
複数のソリューションファイルがある場合は、行う必要がありますdotnet restore solutionfilename.sln
ECH

97

私の場合、エラーはGITリポジトリでした。名前にスペースが含まれていたため、プロジェクトを復元できない

これが問題である場合は、クローンを作成するときにGITリポジトリの名前を変更するだけです

git clone http://Your%20Project%20With%20Spaces newprojectname

6
私はこれはおそらくそれではあり得ないと思いました。他の提案された解決策でさらに1時間試した後、私はやっとこれを必死にして試してみて、私の問題を解決しました。くそったれ!
スターク、

2
これで私が抱えていた問題が修正されました。ありがとうございました!
Sharbel

3
この回答は投稿の最後ではなく、最初にある必要があります。私の問題を解決しました。
CodeWarrior

2
あなたは私の日を救った!ありがとうございました。
mpatel

3
私の場合、%20を削除して物理フォルダーの名前を変更し、それを通常のスペースに置き換え、すべてがうまく機能しています
hosam hemaily

42

「ドットネット復元」が機能しない場合は、次の手順が役立つことがあります。

  1. Visual Studio >>ツール>>オプション>> Nuget Manager >>パッケージソース
  2. サードパーティのパッケージソースのチェックをすべて外しました。
  3. ソリューションを再構築します。

3
私は最近、Identityサーバーのクイックスタート#1でこの問題に遭遇しました。クライアントの資格情報を使用してAPIを保護すると、上記のソリューションでうまくいきました。
タリンドゥジャヤシンゲ

ありがとうございました!私は実際にはもう関係のない1つのソースを(別のソリューションから)削除し、nuget.orgおよびMSVSオフラインパッケージのソースで[ 更新 ]ボタンをクリックしました。これがdotnet restore機能した後。
CPHPython

ありがとうございました!
tdracz

33

ここに投稿された他の回答に従ってNuGetパッケージが復元されたことを確認したら、Visual Studioを閉じて再度開くと、この問題が解決しました。



仕事用LANで、NuGetを阻害するいくつかの個別の接続問題がありました。PCを再起動すると問題が解決しました!
ネオ

時にはあなたがCLIツールを使用するので、これは本当に答えではないgetbuild、あなたが開いVS.しません VSで動作する理由を知っています。VSがプロジェクトの依存関係を自動的に解決するためです。
TS

@TS質問には「Visual Studio 2017」というタグが付いているので、これ答えだと思います。しかし興味深い点は、問題はVSの依存関係の解決にあるということです。何が問題になっているのかについてさらに詳しい情報があれば、きっと興味深い読み物になるでしょう:)
OutstandingBill

+1。ばれちゃった!VSでは、まあ。彼のバージョン15.5はバギーでした。15.5 / 15.6には参照解決のための多くの問題があったと思います。これが答えです。stackoverflow.com/ a / 58548856/1704458
TS

20

同様のメッセージが表示される、Azure DevOps / VSTS環境で私と同じ問題が発生している方へ C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file

/t:RestoreBuild SolutionのMSBuild引数に追加します。


9

私がやったときの私にとって-dotnet restoreまだエラーが発生していました。

に行きました

1ツール-> NuGetパッケージマネージャー->パッケージマネージャーの設定-> [Nuget Catche(s)でクリア]をクリックします

2 dotnet復元

解決された問題。


次回はこれを試します。それは私のために通常年齢をとる私の(VSを閉じて再開する)よりも良いアプローチかもしれません。
OutstandingBill

6

Visual Studio 2017では、次の手順を実行してください。

1)[ツール] => [オプション] => [NuGetパッケージマネージャー] => [パッケージソース]を選択し、[ Microsoft Visual Studioオフラインパッケージオプション]をオフにしますここに画像の説明を入力してください

2)次に、Tool => NuGet Package Maneger => Package Manager Consoleを開きます。3)PM> dotnet restoreでコマンドを実行します。

その働きを願っています...


6

私にとっては、3.4が.NET Coreのパッケージを復元する方法を理解していないため、NuGet.exeを3.4から4.9にアップグレードしました。

詳細については、dotcity復元とteamcityによるnuget復元をご覧ください。


はい-古い.Net Frameworkプロジェクトを新しい.csprojプロジェクト形式に移行し始めたときにこれを見つけました。
StuartLC

5

[ ツール] > [ NuGetパッケージマネージャー] > [ パッケージマネージャーコンソール]を選択します。

そして実行します:

dotnet restore <project or solution name>

3

答えには少し遅れますが、これは価値を追加するようです。エラーを見ると、CI / CDパイプラインで発生しているようです。

「dotnet build」を実行するだけで十分です。

dotnetビルド

dotnetビルドは、デフォルトで「復元」を実行します。


1
また、「ビルド前に」ステップ「.NETコア」をパイプラインに追加し、ドロップダウンから「dotnet復元」コマンドを選択することによっても実現できます。ここでは特にVSTSパイプラインについて話しています。
LechOsiński18年

3

上記の何も私のために働いていません。ただし、「bin」および「obj」フォルダをすべて削除するだけでうまくいきました。


この問題は、Dockerfileで作業しているときに発生しました。これらのフォルダーを削除すると、コンテナー内のdotnet復元が正しく機能します。
ヨハネス


2

VSTSを使用する場合は、global.jsonファイルを確認してください。私はsdkバージョンを「2.2」と入力しただけで、解析エラーが発生しました(ただし、ローカルでビルドするときは発生しません)。フルバージョン「2.2.104」を追加すると問題が解決しました。


2

ソリューション全体ではなく、ソリューション内の個々のプロジェクトをビルドするためにビルドパイプラインで「Visual Studio Build」タスクを設定すると、Azure DevOpsでこのエラーが発生して数時間失われました。

これを行うと、DevOpsはビルド対象のプロジェクトで参照されているプロジェクトのいずれか(場合によってはいくつか、私にはわかりません)をビルドしないため、それらのプロジェクトにはproject.jsonがありません。 .assetファイルが生成され、この問題が発生します。

私にとっての解決策は、VSビルドタスクの使用からMSBuildタスクへのスワップでした。個々のプロジェクトにMSBuildタスクを使用すると、ビルドしているプロジェクトが参照するすべてのプロジェクトが正しくビルドされ、このエラーが解消されます。


1

単にNuGetパッケージを復元する作業makeがでわからない場合は[ツール] - > [オプション] - > [ NuGetパッケージマネージャ ] - > [ 一般の下にパッケージが復元「NuGetが不足しているパッケージをダウンロードすることを許可する」がチェックされていること。

そして、NuGetパッケージを復元し、再びORちょうどREBUILD OBJ削除し、ビンフォルダの後に。


1

@ mostafa-bouzariの提案が役に立たない場合は、「エラーリスト」または「出力」ウィンドウで、プロキシの背後にある場合のネットの問題など、NuGetが復元できないエラーを注意深く確認してください。


私の場合、会社のVPNに接続していないため、Nuget RestoreはプライベートNuGetリポジトリに接続できませんでした。パッケージマネージャーコンソールのログを確認すると役立ちました。
アレクサンドルプチコフ

1

この問題は、ビルドツールがvs restoreを使用するように設定されたプロジェクトで実行するように設定されていない場合に発生し、主にNet CoreおよびNetstandardの新しいスタイルのプロジェクトに影響します。PackageReferencepackages.config

Visual Studioを開いてビルドすると、これが解決されます。しかし、自動化、CLIツールを使用すると、この問題が発生します。

ここでは多くのソリューションが提供されています。しかし、覚えておくべきことはすべて、強制する必要がありますrestore。場合によってはdotnet restore、ビルド前に使用します。MsBuildを使用してビルドする場合は/t:Restore、コマンドにスイッチを追加するだけです。

結論として、復元をアクティブ化できない理由を確認する必要があります。不正なnugetソース、欠落している復元アクション、または古いnuget.exe、または上記すべて。


1

私が遭遇した非常に奇妙な経験!

以前にGIT bashとGIT cmd-Lineでクローンを作成していたので、上記の問題が発生しました。

その後、Tortoise-GITでクローンを作成し、すべてが期待どおりに機能しました。

これはおかしな答えかもしれませんが、一度これを試すと時間を節約できます!


1

WinForms Core 3.1プロジェクト(プロジェクトテンプレートから)をVS-2019対16.4.0に追加し、そのまま実行しようとした後にこれを確認しました。ソリューション全体をクリーンアップまたは再構築しても機能しませんでした。

私は自分のソリューションをリロードしました。それはファイル/閉じるソリューションであり、それを再度開いて再構築すると問題が解決しました。


1

このエラーがAzure DevOps(TFS)のビルドの一部として発生し、ビルドに既にNuGet復元タスクが含まれている場合、このエラーは、特にカスタムパッケージソース(内部NuGetサーバーなど)。/t:Restore;BuildMSBuild引数に追加することは、エラーを解決する1つの方法のようですが、これにより、MSBuildに追加のNuGet復元操作を実行するように求められます。MSBuildはVisual Studioで構成されたカスタムパッケージソースを使用するため、これは成功したと思います。NuGet復元タスクを修正することをお勧めします。

NuGet復元タスクのカスタムパッケージソースを構成するには:

  1. NuGet.configすべてのパッケージソース(Microsoft Visual Studio Offline Packages、nuget.org、およびカスタムパッケージソース)をリストするファイルを作成し、それをソース管理に追加します。
  2. [ 使用するフィード]の下のNuget復元タスクで、[ NuGet.configのフィード ]オプションを選択します。
  3. へのパスを指定しNuGet.configます。
  4. /t:Restore;BuildMSBuildタスクからオプションを削除します。

詳細については、こちらをご覧ください


0

VS2017でドットネットコアにラムダを作成すると、エラーが発生しました。私にとってうまくいったのは、プロジェクトをアンロードして、再度ロードすることでした。


0

その後、VSを管理者として実行し、パッケージマネージャーコンソールでdotnet restoreを実行します。


0

もう1つは、万が一Dropboxを使用している場合はConflicted、ファイル名を確認し、リポジトリで検索を実行して、競合するファイルをすべて削除します。

これは、ファイルを移動した場合に発生した可能性があります。


0

この欠陥の原因:ファイルエクスプローラーで注入されたNugetを削除する必要があります。解決策:システムでそのNugetを削除したら、次の場所から削除します。ツール=>オプション=> NuGetパッケージマネージャー=>パッケージソースを選択し、Microsoft Visual Studioオフラインパッケージオプションのチェックを外します



0

私の場合、利用可能なパッケージソースに問題がありました。ローカルnugetリポジトリフォルダーを新しいパスに移動しましたが、Nuget Available Package Sourcesでそれを更新しませんでした。パスの問題を修正したら、利用可能なパッケージソースで更新します。その後、すべて(nugetリストアなど)が正常に機能していました。


0

私にとっては、核のソース資格情報の問題であることが判明しました。最近、ネクサスサーバーにアクセスするためのパスワードを変更しましたが、Windows資格情報マネージャーを介してそのサーバーのnugetにアクセスしようとすると、Visual Studioはまだ古いパスワードを使用していました。それを修正するには、資格情報マネージャーで古い資格情報のエントリを削除する必要があり、その後、nuget復元を実行すると、新しいパスワードを入力するためのパスワードを要求され、資格情報マネージャーに再度保存されました。CmdKey.exeを使用して、cmd行から資格情報マネージャーにアクセスできます。


0

これを試してください(私にとってはうまくいきました):

  • 管理者としてVSを実行する
  • NuGetを最新バージョンに手動で更新する
  • プロジェクト内のすべてのbinおよびobjファイルを削除します。
  • VSを再起動します
  • 再コンパイル

0

ツール> NuGetパッケージマネージャー>パッケージマネージャーコンソール

そして実行します:

ドットネット復元

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.