この記事の対象: ✔️ .NET 5.0.100 SDK 以降のバージョン
.NET SDK が警告NETSDK1071を発行すると、PackageReference で指定されたメタパッケージのバージョンと、TargetFramework プロパティを介して暗黙的に参照されるメタパッケージのバージョンとの間に、将来バージョンの競合が発生する可能性があることを示唆しています。
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
TargetFrameworkはメタパッケージのバージョンを自動的に取り込むので、バージョンが異なる場合はバージョンが競合します。
これを解決するには:
.NET Core または .NET Standard を対象とする場合は、プロジェクト ファイル内の
Microsoft.NETCore.AppまたはNETStandard.Libraryへの明示的な参照を回避することを検討してください。.NET Core をターゲットにするときに特定のバージョンのランタイムが必要な場合は、メタパッケージを直接参照するのではなく、
<RuntimeFrameworkVersion>プロパティを使用します。 たとえば、 自己完結型のデプロイ を使用していて、1.0.0 LTS ランタイムの特定のパッチが必要な場合に、これが発生する可能性があります。.NET Standard をターゲットにするときに特定のバージョンの
NetStandard.Libraryが必要な場合は、<NetStandardImplicitPackageVersion>プロパティを使用して、必要なバージョンに設定できます。.NET Framework プロジェクトの
Microsoft.NETCore.AppまたはNETSTandard.Libraryへの参照を明示的に追加または更新しないでください。 NuGet は、.NET Standard ベースの NuGet パッケージを使用するときに必要なNETStandard.Libraryの任意のバージョンを自動的にインストールします。.NET Core 2.1 以降を使用する場合は、
Microsoft.AspNetCore.AppまたはMicrosoft.AspNetCore.Allのバージョンを指定しないでください。.NET SDK によって適切なバージョンが自動的に選択されるためです。 (注: これは、プロジェクトでMicrosoft.NET.Sdk.Webも使用されている場合にのみ、.NET Core 2.1 をターゲットとする場合にのみ機能します。この問題は、.NET Core 2.2 SDK で解決されました。警告を削除する場合は、無効にすることもできます。
<PackageReference Include="Microsoft.NetCore.App" Version="2.2.8" > <AllowExplicitVersion>true</AllowExplicitVersion> </PackageReference>
.NET