NETSDK1071:對架構隨附的中繼套件明確地設定 PackageReference 的版本。
此文章適用於:✔️ .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
的參考。 使用 .NET Standard 型 NuGet 套件時,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>