共用方式為


NETSDK1071:明確版本設定的 PackageReference 至將包含在框架中的元套件。

本文適用於: ✔️.NET 5.0.100 SDK 和更新版本

當 .NET SDK 發出警告NETSDK1071時,它表示未來 PackageReference 中指定的中繼套件版本與透過 TargetFramework 屬性隱含參考的該中繼套件版本之間可能會發生版本衝突:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

由於 TargetFramework 會自動引入一個元套件版本,版本不同時就會產生衝突。

若要解決此問題:

  1. 當您以 .NET Core 或 .NET Standard 為目標時,請考慮在您的專案檔中避免對 Microsoft.NETCore.AppNETStandard.Library 進行明確的引用。

  2. 如果您在以 .NET Core 為目標時需要特定版本的執行階段,請使用 <RuntimeFrameworkVersion>屬性,而不是直接參考中繼套件。 例如,如果您使用 獨立部署 ,且需要 1.0.0 LTS 執行階段的特定修補程式,則可能會發生這種情況。

  3. 如果您在以 .NET Standard 為目標時需要特定版本 NetStandard.Library ,您可以使用屬性 <NetStandardImplicitPackageVersion> ,並將它設定為您需要的版本。

  4. 請勿明確新增或更新 .NET Framework 專案中Microsoft.NETCore.AppNETSTandard.Library的參考。 NuGet 會在使用 .NET Standard 型 NuGet 套件時自動安裝您需要的任何版本 NETStandard.Library

  5. 在使用 .NET Core 2.1+ 時,請勿為 Microsoft.AspNetCore.AppMicrosoft.AspNetCore.All 指定版本,因為 .NET SDK 會自動選擇適合的版本。 (注意:此功能僅在專案也使用 Microsoft.NET.Sdk.Web 且以 .NET Core 2.1 為目標時有效。此問題已在 .NET Core 2.2 SDK 中解決。)

  6. 如果您想要消除警告,也可以將其停用:

    <PackageReference Include="Microsoft.NetCore.App" Version="2.2.8" >
      <AllowExplicitVersion>true</AllowExplicitVersion>
    </PackageReference>