1. ホーム
  2. .net-core

[解決済み] Visual Studio 2017 で Microsoft.NETCore.App パッケージを更新できない(「プロジェクトによってブロックされた」)。

2023-06-06 07:54:35

質問

Microsoft.NETCore.App 1.1.2 をターゲットとする dotnet コア アプリを持っています。そのプロジェクトに対してテストするためにテスト プロジェクトを作成しましたが、ビルドするときにこの警告に気づきました。

NuGet パッケージ マネージャーを開くと、警告は正しく、テストされているプロジェクトには Microsoft.NETCore.App の異なるバージョンがあることがわかります。

私の問題は、Visual Studio がそのバージョンを更新させてくれないことで、この問題を解決する方法について混乱しています。

理想的には、ドロップダウンをクリックして正しいバージョンを選択するだけですが、Visual Studio は、プロジェクトまたは packages.config の "additional constraints" のためにこれを行うことができないと主張しています。どのようにパッケージを更新すればよいのでしょうか?Visual Studio はどのような "追加の制約" を参照しているのですか?

どのように解決すればよいですか。

EDIT 2018 : パッケージの更新の指示は、自分が何をしているのか本当に分かっている場合のみ従ってください。ほとんどの場合、このパッケージ、または "blocked by project" としてマークされた他のパッケージを手動で更新する必要はありません。フレームワークに依存するアプリケーションは最新のランタイムを使用し、自己完結型のアプリケーションは自動的にこのパッケージの新しいバージョンを使用して追加のビルドを実行します。(テストプロジェクトでこのパッケージをアップグレードする必要があるエッジケースもあります。このような場合は <TargetLatestRuntimePatch>true</…> このQ&Aを参照してください。 をご覧ください。)

暗黙のパッケージ参照は Microsoft.NET.Sdk は NuGet を介して更新することはできません。

project.jsonから移行した場合、プロジェクトに 1.1.0 が含まれている可能性が高いです。

<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>

をcsprojファイルまたはこのような項目(以前にパッケージマネージャを使用してバージョンを設定したことがある場合)に入れてください。

<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />

上記のようなエントリを削除すると、すべてのパッケージが 1.1.2 (またはインストールされた SDK が最新と見なすもの) を自動的に参照するようになります。 あるいは RuntimeFrameworkVersion をすべてのプロジェクトで設定します。