web-dev-qa-db-ja.com

NuGetパッケージがVisual Studio 2017で復元されない

_Asp.netCore_で正常に機能していた_Visual Studio 2015_ソリューションがあり、次に_Visual Studio 2017_に移動しました。今問題は、すべてのnugetパッケージの_Visual Studio 2017_に黄色の感嘆符があることです。以下は私がこれまでに試した解決策です。

_Visual Studio Version: 15.3.1_を使用しています

  • 「管理者」として実行し、パッケージを復元します。
  • _Tools > options > NuGet Package Manager >_からClear All Nugget Cache(s)を実行し、再度Nugetを復元します。

You can see yellow mark on every nuget package

注:次の解決策を検索して見つけ、試してみましたが問題は解決しませんでした。

ソリューション1

7
Usman lqbal

私はここで別のスレッドで答えを見つけました。クレジットは@AxelWassに行く必要がありますが、彼はこれに特に焦点を当てていませんでしたが、この問題は完全に修正されています。上記の答えはしませんでした。


同じ問題があり、テキストエディターでプロジェクトを開き、次のセクションを削除することで解決しました。

<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'))" />
</Target>

これを削除すると、VS2017とPMは解決できないように見えるというこの悪夢の問題が解決されます。私もこれに何度も遭遇しました-特に同じソリューションで多くのプロジェクトをブレンドする場合ディレクトリ。

15
Dave Friedel

Microsoftによるパッケージの復元ドキュメントを使用したパッケージのインストールと再インストール で述べたように、Update-Package -reinstallを実行する必要があります。

Update-Package -reinstall -ProjectName <project>コマンドは、ソリューションエクスプローラーに表示される、影響を受けるプロジェクトの名前です。 Update-Package -reinstallを単独で使用して、ソリューション内のすべてのパッケージを復元します。

8
Jack Martin

デフォルトでは、Visual Studioの新規インストールは、パッケージソースをオンラインでパッケージを検索するように構成しませんでした。それが問題を引き起こした。

私はstackoverflowリンクからもう少し作業をして答えを見つけました: https://stackoverflow.com/a/32360953/1503372

その回答は、「 https://www.nuget.org/api/v2 」URLを使用してパッケージを復元することを言及しています。 Visual Studio 2017でパッケージマネージャーコンソールを開いたところ、自分のPCからのみパッケージを検索していることがわかりました(オフライン検索)。

次に、「 https://www.nuget.org/api/v2 」のURLをパッケージの復元元として追加しました。

以下の手順に従って、パッケージソースを追加します。

  1. プロジェクトを右クリック> nugetパッケージを管理すると、「パッケージソースラベル」が表示されます。

  2. 強調表示されたURLをパッケージソースに追加します。

  3. パッケージソースとして「すべて」を選択します。

パッケージをオンラインで検索するようにVisual Studioを構成すると、すべてのパッケージが復元されます。

0
Jackson

nuget.configで間違った設定を発見しました。なぜなのかはわかりませんが、このファイルには現在のプロジェクトが一部除外されています。

このコマンドを実行しているグローバル構成はFile Explorerで確認できます

%AppData%\NuGet\NuGet.Config

0
Enrico