當以 .NET 9+ SDK 建置目標 netstandard1.x 的專案時,現在就會發出警告。
先前的行為
先前,您可以建置以 .NET Standard 1.0 - .NET Standard 1.6 為目標的專案,而不需要任何建置警告。
新行為
從 .NET 9 開始,如果您建置以 .NET Standard 1.0 - .NET Standard 1.6 為目標的專案,就會發出下列警告:
警告NETSDK1215:不再建議在 2.0 之前以 .NET Standard 為目標。 如需詳細資訊,請參閱 https://aka.ms/dotnet/dotnet-standard-guidance。
推出的版本
.NET 9 Preview 6
破壞性變更的類型
這項變更可能會影響 來源相容性。
變更的原因
已引入組建警告,以鼓勵客戶以 .NET Standard 2.0 或 .NET 6+ 為目標。 如果您以 .NET Standard 1.x 為目標,您會將自己限製為 .NET Framework 4.5 的子集,其年齡超過 10 年。 自那以後,你錯過了很多創新。 此外,.NET Standard 1.x 是以詳細的 NuGet 套件集提供,這會產生了一個龐大的相依套件圖,導致在建置專案時需要下載大量的套件。
如需詳細資訊,請參閱以 .NET Standard 1.x 為目標的缺點為何?
建議的動作
將屬性 TargetFramework 更新為 netstandard2.0 或 netstandard2.1。
如果您必須保留較舊的 .NET Standard 版本,您可以在項目檔中將 設定 <CheckNotRecommendedTargetFramework> 為 false ,例如 .csproj 檔案或 Directory.Build.props 檔案,以略過目標 Framework 版本檢查:
<PropertyGroup>
...
<CheckNotRecommendedTargetFramework>false</CheckNotRecommendedTargetFramework>
</PropertyGroup>
或者,您可以使用項目檔中的 屬性來隱藏警告 <NoWarn> :
<PropertyGroup>
...
<!-- Disable "Targeting .NET Standard prior to 2.0 is no longer recommended." warning -->
<NoWarn>$(NoWarn);NETSDK1215</NoWarn>
</PropertyGroup>
受影響的 API
N/A