共用方式為


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。