Windows アプリ SDK 1.2 のプレビュー チャネル リリース ノート

重要

プレビュー チャネルは、運用環境での使用ではサポートされていません。また、プレビュー リリースを使用するアプリを Microsoft Store に公開することはできません。

プレビュー チャネルには、開発の後期段階のプレビュー チャネル機能を備えた Windows アプリ SDK のリリースが含まれています。 プレビュー リリースには試験段階の機能と API は含まれていませんが、次の安定版リリースの前に破壊的変更が発生する可能性は残っています。

重要なリンク:

最新のプレビュー チャネル リリース ノート

最新の安定版チャネル リリース ノート:

バージョン 1.2 プレビュー 2 (1.2.0-preview2)

これは、バージョン 1.2 のプレビュー チャネルの最新リリースです。

既存の Windows App SDK 1.1 (安定チャネルから) アプリでは、Nuget パッケージを 1.2.0-preview2 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio でパッケージをインストールおよび管理する」「パッケージの更新」セクションを参照してください)。

更新されたランタイムと MSIX については、「最新の Windows アプリ SDK ダウンロード」を参照してください。

重要

Visual Studio 2019 と .NET 5 は、C# アプリのビルドでサポートされなくなりました (Windows App SDK 1.2 から C# WinRT 2.0 への移行のページを参照してください)。 Visual Studio 2022 と、.NET SDK バージョン 6.0.401 (またはそれ以降)、6.0.304、6.0.109 のいずれかが必要になります。

.NET SDK のバージョンを更新するには、Visual Studio 2022 の最新バージョンをインストールするか、「.NET のダウンロード」を参照してください。 必要な .NET SDK バージョンがない状態で NuGet パッケージを更新すると、次のようなエラーが表示されます: "このバージョンの WindowsAppSDK には .NET 6 以降と WinRT.Runtime.dll バージョン 2.0 以降が必要です。"。 プロジェクトを .NET 5.0 から .NET 6.0 に更新するには、プロジェクト ファイルを開き、"TargetFramework" を net6.0 に、[ターゲットの OS バージョン] を適切な値 (net6.0-windows10.0.19041.0 など) に変更します。

Windows でのサードパーティ製ウィジェット

ウィジェット ボードは Windows 11 で最初に導入され、ファースト パーティのウィジェットの表示に限定されていました。 ウィジェットは、ウィジェットボードにテキストとグラフィックを表示する小さなUIコンテナで、デバイスにインストールされているアプリに関連付けられています。 Windows アプリ SDK を使用すると、サード パーティの開発者として、パッケージ化された Win32 アプリのウィジェットを作成し、Windows 11 ウィジェット ボードでローカルにテストできるようになりました。

ウィジェットの詳細については、「ウィジェットの概要」を参照してください。

アプリ用にウィジェットの開発を開始する場合は、前提条件、ガイダンス、ベスト プラクティスについて、ウィジェット プロバイダーの開発ドキュメントと「ウィジェット設計の基礎」を参照してください。

このリリースには次のような前提条件があります。

  • 開発マシンでデベロッパー モードが有効になっている。
  • 開発用コンピューターは、ウィジェット ボード バージョン 521.20060.1205.0 以降を使用して、Windows Insider Program (WIP) の開発チャネルから Windows のバージョンを実行しています。

ウィジェット開発時の既知の制限事項

  • サードパーティ製ウィジェットは、今回のプレビュー リリースの WIP に登録されたデバイスのローカルでのみテストできます。 Windows アプリ SDK 1.2.0 では、製品版の Windows のユーザーは、Microsoft Store に付属するバージョンのアプリを介して ウィジェットの取得を開始できます。
  • パッケージ化された Win32 アプリ用にのみウィジェットを作成できます。 Progressive Web Apps (PWA) 用のウィジェットは、Microsoft Edge 108 の一部としてサポートされる予定です。

.NET を使って開発されたアプリのトリミング

.NET 開発者は、トリミングされた WinAppSDK アプリを発行できるようになりました。 CsWinRT 2.0 では、WinAppSDK で配布される C#/WinRT のプロジェクションをトリミングできるようになりました。 アプリをトリミングして発行すると、トリミング可能なバイナリから使われていないコードが削除されるので、アプリのディスク占有領域を減らすことができます。 また、アプリの起動パフォーマンスも向上する可能性があります。 基本的な Hello World アプリの場合、トリミングして発行すると、ディスク占有領域は約 80%、起動パフォーマンスは約 7% 向上することを確認しました。 WinUI ギャラリーの場合、ディスク占有領域は約 45% 向上することを確認しました。

トリミングを有効にする方法、トリミングの制限 (トリミング可能な型に対するリフレクションなど)、トリミングの警告の詳細については、「自己完結型の展開と実行可能ファイルのトリミング」を参照してください。 開発者は、トリミング後のアプリを徹底的にテストして、すべてが想定どおりに機能することを確認してください。 詳細については、GitHub の issue 2478 を参照してください。

DisplayInformation

Win32 アプリで、WinAppSDK の DisplayInformation クラスを使用してハイ ダイナミック レンジ (HDR) をサポートできるようになりました。 DisplayInformation クラスを使うと、アプリケーション ビューのディスプレイ関連情報を監視できます。 これには、ビューが表示されているディスプレイに影響するアプリケーション ビューの変更と、アプリケーション ビューに影響する可能性があるディスプレイの変更を、クライアントから監視できるようになるイベントが含まれています。

WinUI 3 で解決された問題

  • DesktopAcrylicController 経由のアクリル背景素材が Windows 10 アプリでサポートされるようになりました。 詳細については、GitHub の issue 7112 を参照してください。
  • App.UnhandledException がアプリケーションへのルーティングに失敗する問題を修正しました。 詳細については、GitHub の issue 5221 を参照してください。
  • WinAppSDK 1.1 から ListView のスタイルが回帰して変更される問題を修正しました。 詳細については、GitHub の issue 7666 を参照してください。

その他の制限事項と既知の問題 (1.2.0-preview2)

重要

プロジェクトから WinAppSDK 1.2 を参照すると、次のようなエラーが表示されることがあります: "パッケージのダウングレードが検出されました: Microsoft.Windows.SDK.BuildTools 10.0.22621.1 から 10.0.22000.194"。これは、アプリ プロジェクトと WinAppSDK パッケージからのパッケージへの参照に互換性がないために発生します。 これを解決するには、プロジェクト内の参照を Microsoft.Windows.SDK.BuildTools のより新しく互換性のあるバージョンに更新するか、プロジェクトから参照を削除します。 プロジェクトから削除すると、互換性のあるバージョンが WinAppSDK パッケージによって暗黙的に参照されます。

  • Arm64 Visual Studio を使用したビルドは現在サポートされていません。
  • ブートストラップとドッキングされていない RegFree WinRT 自動初期化子の既定値は、(現在は) 実行可能ファイル (OutputType=Exe または WinExe) を生成するプロジェクトにのみ設定されています。 そのため、クラス ライブラリ DLL やその他の非実行可能ファイルに自動初期化子を既定で追加できなくなりました。
    • 非実行可能ファイル (たとえば、ブートストラッパーを初期化しない汎用実行可能ファイルによって読み込まれるテスト DLL) に自動初期化子が必要な場合、<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize> または <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize> を使って、プロジェクトで自動初期化子を明示的に有効にすることができます。
  • バージョン情報 API (ReleaseInfo と RuntimeInfo) は呼び出すことができますが、バージョン 0 (実際のバージョン情報ではない) を返します。

バージョン 1.2 プレビュー 1 (1.2.0-preview1)

既存の Windows アプリ SDK 1.1 (安定チャネルから) アプリでは、Nuget パッケージを 1.2.0-preview1 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio でパッケージをインストールおよび管理する」の「パッケージの更新」セクションを参照してください)。

更新されたランタイムと MSIX については、「最新の Windows アプリ SDK ダウンロード」を参照してください。

WinUI 3

WinUI 3 アプリで、MediaPlayerElementMediaTransportControls メディア再生コントロールを使ってオーディオとビデオを再生できます。 メディア コントロールの使い方とタイミングについては、「メディア プレイ ヤー」を参照してください。

WinUI 3 は WinUI 2.8 から更新され、最新のコントロール、スタイル、動作になりました。 これらの更新には、InfoBadge コントロールの追加、アクセシビリティとハイ コントラスト モードの機能強化、コントロール全体のバグ修正が含まれています。 詳細については、WinUI 2.7WinUI 2.8 のリリース ノートを参照してください。

既知の問題

ListView スタイルは、WinAppSDK 1.1 から後退し、変更されました。

通知

AppNotificationBuilder は、アプリ通知を作成および定義する際に XML ペイロードの代わりとして導入されました。

使い方については、GitHub の AppNotificationBuilder 仕様を参照してください。

また、ローカル アプリ通知を送受信するデスクトップ Windows アプリケーションの作成方法の例については、「クイックスタート: Windows アプリ SDK のアプリ通知」を参照してください。

重大な変更

プッシュ通知の場合、チャネル要求呼び出しを行うときに、アプリは Azure アプリ ID ではなく Azure オブジェクト ID を使う必要があります。 Azure オブジェクト ID の見つけ方の詳細については、「クイックスタート: Windows App SDK のプッシュ通知」を参照してください。

修正された問題

PushNotificationManager.IsSupported は管理者特権モードのチェックを実行します。 管理者特権でアプリが実行されている場合は、false を返します。

既知の制限事項 (通知)

  • AppNotificationScenario では、Urgent は Windows ビルド 19041 以降でのみサポートされています。 AppNotificationBuilder.IsUrgentScenarioSupported を使うと、実行時にその機能を使用できるかどうかを確認できます。
  • AppNotificationButton では、hint-toolTiphint-buttonStyle はビルド 19041 以降でのみサポートされています。 IsButtonStyleSupportedIsToolTipSupported を使うと、実行時にその機能を使用できるかどうか確認できます。
  • パッケージ化されていないアプリの XAML マークアップで MediaPlayerElement を使う場合、Source プロパティには ms-appx または ms-resource URI を設定できません。 代わりに、ファイル URI を使って Source を設定するか、コードから設定してください。

ウィンドウ化

Windows 10 のバージョン 1809 以降では、AppWindowTitleBar クラスを使ってタイトル バーの完全なカスタマイズが可能になりました。 AppWindowTitleBar.ExtendsContentIntoTitleBartrue に設定するとタイトル バー リージョンにコンテンツを拡張できます。また、SetDragRectangles を使うと、(他のカスタマイズ オプションに加えて) ドラッグ領域を定義できます。

AppWindowTitleBar.IsCustomizationSupported プロパティを使って AppWindowTitleBar API を呼び出すことができるかどうかを確認している場合、サポートされている Windows App SDK Windows 10 バージョン (1809 以降) では true が返されるようになりました。

既知の制限事項 (Windowing)

単純なタイトル バーのカスタマイズは、Windows 10 ではサポートされていません。 たとえば、BackgroundColorInactiveBackgroundColorForegroundColorInactiveForegroundColorIconShowOptions などです。 これらのプロパティを呼び出すと、メッセージなしで無視されます。 他のすべての AppWindowTitleBar API は、Windows 10 バージョン 1809 以降で機能します。 (特に) キャプション ボタンの色 API と、Height については、ExtendsContentIntoTitleBartrue に設定する必要があります。そうしないと、メッセージなしで無視されます。

アクセス制御

security.accesscontrol.hGetSecurityDescriptorForAppContainerNames 関数を導入し、パッケージ プロセスと一般的な Win32 API 間の名前付きオブジェクト共有を容易にし、合理化しました。 このメソッドは、パッケージ ファミリ名 (PFN) とアクセス マスクの一覧を受け取り、セキュリティ記述子を返します。 詳細については、GitHub の GetSecurityDescriptorForAppContainerNames 仕様を参照してください。

その他の制限事項と既知の問題 (1.2.0-preview1)

  • .NET PublishSingleFile はサポートされていません。