共用方式為


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 的參考。 使用 .NET Standard 型 NuGet 套件時,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>