Windows App SDK の実験的チャネル リリース ノート
重要
実験的チャネルは、運用環境での使用ではサポートされていません。また、実験的リリースを使用するアプリを Microsoft Store に公開することはできません。
実験的チャネルでは、開発の初期段階にある実験的チャネル機能を含む Windows App SDK のリリースが提供されます。 実験的機能の API には、Experimental 属性があります。 コードで実験的 API を呼び出した場合は、ビルド時の警告が表示されます。 実験的チャネル内のすべての API は、将来のリリースで重要な変更が加えられる可能性がありますが、特に実験的 API が変更されます。 実験的な機能は、次期リリースから削除される場合や、リリースされない場合があります。
重要なリンク:
- 既存のアプリを以前のバージョンの Windows App SDK から新しいバージョンにアップグレードする場合は、「既存のプロジェクトを最新リリースの Windows App SDK に更新する」を参照してください。
- 試験的なリリースのドキュメントについては、Windows アプリ SDKのプレビュー チャネルと試験的チャネル用のツールのインストールに関するページを参照してください。
実験的チャネル リリース:
バージョン 1.2 試験的 (1.2.0-experimental2)
これは、実験的チャネルの最新リリースです。 1.2.0-preview 1 のすべての試験的なチャネル機能がサポートされています。
ダウンロードするには、WinAppSDK NuGet バージョンを に 1.2.220909.2-experimental2
再ターゲットします。
修正された問題
今後のWindows Insider Preview ビルドでは、Windows アプリ SDK を使用するアプリケーションの起動に失敗します。
バージョン 1.2 試験的 (1.2.0-experimental1)
これは、実験的チャネルの最新リリースです。 すべての実験的チャネル機能がサポートされています。
ダウンロードするには、WinAppSDK NuGet バージョンを に 1.2.220727.1-experimental1
再ターゲットします。
入力 & コンポジション
Windows アプリ SDK 0.8 で初めて導入された、Microsoft.UI.Input.ExperimentalMicrosoft.UI.Composition.Experimental 名前空間には、いくつかの実験&用クラスがあります。
このリリースの新機能:
- InputPointerSource には、新しい静的ファクトリ GetforWindowId があります。
コンテンツ
このリリースでは初めて、Microsoft.UI.Content 名前空間の実験用クラスは対話型コンテンツの構成要素を提供します。 これらは、エンド ユーザーに対話型エクスペリエンスを提供するためにコンテンツに組み立てることができる低レベルのプリミティブです。 コンテンツは、アニメーションを使用した出力のレンダリング、さまざまなターゲットでの入力の処理、アクセシビリティ表現の提供、ホスト状態の変更の処理の構造を定義します。
注目すべき API:
ContentIsland
- Output、Input、Accessibility がまとめられ、対話型コンテンツの抽象化が提供されます。 カスタム ビジュアル ツリーは、これらの API を使用して構築して対話型にすることができます。DesktopChildSiteBridge
- を HWND ベースの階層に接続できますContentIsland
。
詳細については、 GitHub のサンプル を参照してください。
ディスパッチする
DispatcherQueue が再入可能としてディスパッチされるようになりました。 以前は、一度に 1 つのスレッドで 1 つの DispatcherQueueHandler コールバックをアクティブにすることはできませんでした。 ここで、ハンドラーが入れ子になったメッセージ ポンプを開始すると、追加のコールバックが再入可能としてディスパッチされます。 これは、ウィンドウ メッセージと入れ子になったメッセージ ポンプに関する Win32 の動作と一致します。
通知
アプリの表示名とアプリ通知のアイコンの登録がサポートされるようになりました。 詳細については、 GitHub の仕様 を参照してください。
WinUI 3
- コントロールとスタイルは、 WinUI 2.8 リリースで最新の状態です。
- UWP は、試験段階のリリースではサポートされなくなりました。
その他の制限事項と既知の問題
- ABI で破壊的変更が発生したため、アプリを Windows アプリ SDK 1.2-experimental1 に更新した後に再構築する必要があります。
- WebView2 に依存するパッケージを参照するアプリ (Microsoft.Identity.Client など) はビルドに失敗します。 これは、ビルド時にバイナリが競合していることが原因で発生します。 詳細については、GitHub の 問題 2492 を参照してください。
- WinAppSDK C# クラス ライブラリ プロジェクトで を使用すると
dotnet build
、"Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent タスクを読み込めませんでした" というビルド エラーが表示されることがあります。 プロジェクト ファイルでこの問題セット<EnableMsixTooling>true</EnableMsixTooling>
を解決するには。 - 既定の WinAppSDK テンプレートでは、MaxVersionTested="10.0.19041.0" が "10.0.22000.0" である必要がある場合に注意してください。 一部の機能 (特に UnlockedDEHs) を完全にサポートするには、プロジェクト ファイルで MaxVersionTested を "10.0.22000.0" に更新します。
バージョン 1.0 実験 (1.0.0-experimental1)
このリリースでは、すべての実験的チャネル機能がサポートされています。
以下のセクションでは、このリリースの新機能と更新された機能、制限事項、既知の問題について説明します。
WinUI 3
このリリースの WinUI 3 では、1.0 の安定した新機能の構築とバグの修正に重点が置かれています。
- 新機能: スレッドごとにではなく、ウィンドウごとに ContentDialog を表示できます。
- バグ: このリリースで解決されたすべてのバグの一覧については、GitHub リポジトリを参照してください。
- サンプル: WinUI 3 のコントロールと機能の動作を確認するには、 GitHub から WinUI 3 ギャラリー アプリを複製してビルドするか、 Microsoft Store からアプリをダウンロードします。
詳細について、または WinUI を使用した開発を開始するには、次の情報を参照してください。
プッシュ通知 (実験的機能)
このリリースでは、Azure アプリ登録ベースの ID を使用してパッケージ化されたデスクトップ アプリで使用できるプッシュ通知 API が導入されています。 この機能を使用するには、プライベート プレビューサインアップする必要があります。
重要な制限事項:
- プッシュ通知は、Windows 10 バージョン 2004 (ビルド 19041) 以降のリリースで実行される MSIX パッケージ アプリでのみサポートされます。
- Microsoft は、プライベート プレビューの期間中、プッシュ通知からアプリを無効にしたり取り消したりする権利を持っています。
- Microsoft は、プッシュ通知の信頼性や待機時間について保証しません。
- プライベート プレビュー期間中、プッシュ通知の量は 1 か月あたり 100 万件に制限されます。
詳細については、「プッシュ通知」を参照してください。
ウィンドウ化
このリリースには、ウィンドウ設定 API の更新プログラムが含まれています。 これらは、AppWindow クラスを中心にした一連の高レベルのウィンドウ設定 API です。これにより、Windows ユーザー エクスペリエンスや他のアプリとうまく統合された使いやすいウィンドウ設定シナリオが可能になります。 これは UWP AppWindow と似ていますが、同じではありません。
重要な制限事項:
- このリリースの
AppWindow
は現在、Win32 アプリでのみ使用できます (パッケージと非パッケージの両方)。 - 現在、Windows App SDK には、UI フレームワーク コンテンツを
AppWindow
にアタッチするためのメソッドが用意されていません。HWND
相互運用アクセス メソッドを使用するように制限されています。 - ウィンドウ設定 API は現在、AMD64 用の Windows バージョン 1809 および 1903 で機能しません。
詳細については、「アプリ ウィンドウの管理」を参照してください。
非パッケージ アプリの展開
このリリースでは、ブートストラップ API を含む動的依存関係機能への更新が導入されました。
重要な制限事項:
- 動的依存関係機能は、パッケージ化されていないアプリでのみサポートされています。
- 昇格された呼び出し元はサポートされていません。
詳細については、次の記事を参照してください。
- デスクトップ アプリから MSIX フレームワーク パッケージを動的に使用する
- 外部の場所でパッケージ化されたアプリまたはパッケージ化されていないアプリの Windows App SDK ランタイムを使用する
その他の制限事項と既知の問題
- Any CPU ビルド構成のサポートがない: Windows App SDK はネイティブ コードで記述されているため、Any CPU ビルド構成をサポートしていません。 Visual Studio の WinUI 3 テンプレートでは、アーキテクチャ固有のビルドのみが許可されます。 Any CPU をサポートする既存の .NET アプリケーションまたはコンポーネントに Windows App SDK を追加した場合、目的のアーキテクチャ (
x86
、x64
、arm64
) を指定する必要があります。 - .NET アプリはビルド 18362 以降を対象にする必要があります。TFM は 以降に
net6.0-windows10.0.18362
設定する必要があり、パッケージ 化プロジェクトは<TargetPlatformVersion>
18362 以降に設定する必要があります。 詳細については、GitHub に関する既知の問題に関するページを参照してください。 - 1.0 実験を使用する C# アプリでは、次の .NET SDK のいずれかを使用する必要がある:
- .NET 6 SDK 以降 ( 「.NET と .NET 5 のダウンロードは 2022 年 5 月 10 日にサポート終了になります)」を参照してください)。
バージョン 0.8 プレビュー (0.8.0-preview)
このリリースでは、すべての実験的チャネル機能がサポートされています。
以下のセクションでは、このリリースの新機能と更新された機能、制限事項、既知の問題について説明します。
WinUI 3
このリリースでは、WinUI に関する重大度の高いバグ修正とその他の変更 (0.5 サービス リリースで修正されたバグを含む) が導入されました。 完全な一覧については、WinUI 3 - Windows App SDK 0.8 リリース ノートを参照してください。
アプリのライフサイクル (実験的機能)
このリリースでは、アプリのアプリ ライフサイクルの管理に関連する新しい実験的機能が導入されました。
- すべてのアプリ (パッケージおよび非パッケージ) では、GetActivatedEventArgs を使用できます (ただし、パッケージ アプリでは、プラットフォームにおけるこの実装を既に使用できます)。
- RegisterForXXXActivation 関数を使用できるのは、非パッケージ アプリのみです。
- パッケージ デスクトップ アプリでは、アプリ ライフサイクルのインスタンス化を使用できます。
詳しくは、「アプリのインスタンス化」と「リッチ アクティベーション」をご覧ください。
非パッケージ アプリの展開 (実験的機能)
このリリースでは、パッケージ化されていないアプリの新しい実験的な展開機能が導入されています。 非パッケージ アプリは、Windows App SDK ランタイム パッケージに動的に依存できるようになり、既存の MSI またはセットアップ プログラムをアプリの展開に引き続き使用できます。 これは、次の機能を通じて使用できます。
- Windows App SDK 用のスタンドアロン インストーラー。
- 動的な依存関係機能を含む MSIX パッケージ バンドル。
詳細については、「外部の場所またはパッケージ化されていないWindows アプリ SDKパッケージ化されたフレームワーク依存アプリの展開ガイド」を参照してください。
DWriteCore
このリリースでは、次の機能が追加されます。
- テキスト装飾 (テキスト レイアウト API の下線と取り消し線)
- 縦書きテキスト レイアウト
- フォント フェイス カーニング API
- 非パッケージ アプリの実験的サポート
詳細については、「DWriteCore を使用してテキストを表示する」を参照してください。
MRT Core
このリリースでは、次の機能が追加されます。
- リソースのビルド アクションが自動的に設定されるようになり、プロジェクトを手動で構成する必要性が減りました。
- 非パッケージ アプリの実験的サポート。
詳細については、「MRT Core を使用してリソースを管理する」を参照してください。
制限事項と既知の問題
- Any CPU ビルド構成のサポートがない: Windows App SDK はネイティブ コードで記述されているため、Any CPU ビルド構成をサポートしていません。 Visual Studio の WinUI 3 テンプレートでは、アーキテクチャ固有のビルドのみが許可されます。 Any CPU をサポートする既存の .NET アプリケーションまたはコンポーネントに Windows App SDK を追加した場合、目的のアーキテクチャ (
x86
、x64
、arm64
) を指定する必要があります。 - .NET アプリはビルド 18362 以降を対象にする必要があります。TFM は 以降に
net6.0-windows10.0.18362
設定する必要があり、パッケージ 化プロジェクトは<TargetPlatformVersion>
18362 以降に設定する必要があります。 詳細については、GitHub に関する既知の問題に関するページを参照してください。
サンプル
Windows App SDK サンプルは、このリリースではまだ動作しません。 非パッケージ アプリの展開などの新機能を示すサンプルを含む、新しいサンプルと更新されたサンプルが近日公開予定です。