FrameworkReference 已替換為 Windows SDK 的 WindowsSdkPackageVersion
從 .NET 5.0.8 開始(包括 .NET SDK 5.0.302 和 .NET SDK 5.0.205),以 Windows 為目標的開發人員無法使用 FrameworkReference
專案來覆寫其 Windows SDK 目標套件版本。
WindowsSdkPackageVersion
屬性會取代這項功能。
注意
我們不建議覆寫 Windows SDK 版本,因為 Windows SDK 目標套件隨附於 .NET 5+ SDK。 相反地,若要參考最新的 Windows SDK 套件,請更新您的 .NET SDK 版本。
引進的版本
.NET SDK 5.0.302、.NET SDK 5.0.205
先前的行為
開發人員可以使用 FrameworkReference
項目來覆寫 .NET 5 應用程式中的 Windows SDK 套件版本。 例如:
<ItemGroup>
<FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.19041.18" />
<FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.19041.18" />
</ItemGroup>
新行為
WindowsSdkPackageVersion
屬性會取代 FrameworkReference
覆寫的行為。 例如:
<PropertyGroup>
<WindowsSdkPackageVersion>10.0.19041.18</WindowsSdkPackageVersion>
</PropertyGroup>
變更類別
這項變更可能會影響 來源相容性。
變更的原因
這項變更是為了簡化以 C#/WinRT 所產生的 Windows SDK 套件為目標的套件覆寫行為。
建議的動作
以 Windows SDK 為目標時,移除 .NET 5+ 應用程式項目檔中任何 FrameworkReference
的使用。
使用 Windows App SDK時,如果 .NET SDK 無法解析所需的 Windows SDK 套件 版本,您可能需要明確新增 WindowsSdkPackageVersion
屬性。 此問題可能會因為 Windows App SDK 和 .NET SDK 的不同發行機制而發生,其中 .NET SDK 是透過 Visual Studio 隨附的。 請參閱此 GitHub 問題中的詳細數據。 您也可以考慮在 .NET SDK 解析必要的 Windows SDK 套件版本之後移除 WindowsSdkPackageVersion
屬性,以確保您擁有最新的 Windows SDK 套件。 這通常會發生在 Visual Studio 發行新版本且您已升級至該版本之後。
受影響的 API
由 Windows SDK 目標套件提供的 .NET 5 和更新版本中的 Windows API。