本文適用於: ✔️.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>