Windows App SDK の安定チャネルのリリース ノート

安定チャネルでは、運用環境のアプリによる使用がサポートされている Windows App SDK のリリースが提供されます。 Windows App SDK の安定リリースが使用されるアプリは、Microsoft Store に発行することもできます。

安定チャネルの次のリリースが現在使用できます。

既存のアプリを以前のバージョンの Windows App SDK から新しいバージョンにアップグレードする場合は、「既存のプロジェクトを最新リリースの Windows App SDK に更新する」を参照してください。

Windows アプリ SDKのダウンロード

WINDOWS アプリ SDK VSIX とランタイム (インストーラーと MSIX パッケージ) は、Windows アプリ SDKのダウンロードに関するページで入手できます。 SDK のダウンロードには、Windows アプリ SDKを使用して新しいプロジェクトを作成およびビルドするための Visual Studio 拡張機能が含まれています。 ランタイムのダウンロードには、アプリの展開に使用されるインストーラーと MSIX パッケージが含まれます。 まだ行っていない場合は、Windows アプリ SDKのツールをインストールします。

注意

Windows App SDK Visual Studio 拡張機能 (VSIX) が既にインストールされている場合は、新しいバージョンをインストールする前にアンインストールします。 手順については、「Visual Studio の拡張機能の管理」を参照してください。

バージョン 1.2

バージョン 1.2.3 (1.2.230118.102)

これは、1.2 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

  • 複数のウィンドウを閉じると WinUI 3 アプリがクラッシュする問題を修正しました。
  • ThreadPoolTimer インターフェイスへの 2 つ以上の参照が呼び出されると、アプリが閉じるときにクラッシュする問題を修正しました。 詳細については、「GitHub issue #7260 および #7239」を参照してください
  • すべての単一プロジェクト MSIX アプリが完全信頼として実行される問題を修正しました。 詳細については、「GitHub issue #7766」を参照してください。

バージョン 1.2.2 (1.2.221209.1)

これは、1.2 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

  • ストア パッケージとサイドロード パッケージ (インストーラー、NuGet、ブートストラップなど) が、もう一方が既にインストールされている場合にインストールに失敗する原因となっていた問題を修正しました。 詳細については、「GitHub issue #3168」を参照してください。
  • タッチパッドを使用してスクロールすると、弾力性効果とアニメーション曲線が見つからない問題を修正しました。 詳細については、「GitHub issue #7874」を参照してください。
  • ListView でメモリ リークが発生する問題を修正しました。
  • マウスポインターを置いた後に Button テンプレートが Foreground プロパティを考慮しない問題を修正しました。 詳細については、「GitHub issue #7208」を参照してください。
  • MediaElement に MediaPlaybackItem がない場合に不要な例外が発生する問題を修正しました。
  • コンテンツ切り替え時に MediaPlayerElement に白いフレームが表示される問題を修正しました。
  • App.UnhandledException が他のスレッドからの例外をキャッチしないその他の問題を修正しました。 詳細については、GitHub の問題 #1259#5221 を参照してください。

バージョン 1.2.1 (1.2.221116.1)

これは、1.2 リリースの重要なバグ修正を含む、Windows アプリ SDKのサービス リリースです。

WebView2 または TextBox コントロールを追加するときに、C++ WinUI 3 アプリの起動時にクラッシュが発生する問題を修正しました。 詳細については、「GitHub の問題 #7911&#3117」を参照してください。

バージョン 1.2 安定版

以降のセクションでは、1.2 安定版の新機能と更新された機能、制限事項、既知の問題について説明します。

注意

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

.NET SDK のバージョンを更新するには、最新バージョンの Visual Studio 2022 をインストールするか 、.NET ダウンロードにアクセスしてください。 必要な .NET SDK バージョンなしで NuGet パッケージを更新すると、 "このバージョンの WindowsAppSDK には .NET 6 以降とバージョン 2.0 以降WinRT.Runtime.dll必要です" のようなエラーが表示されます。 プロジェクトを .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 以降を使用して、25217 以上のバージョンの Windows をWindows Insider Preview開発チャネル (WIP) から実行しています。

ウィジェットを開発するときの既知の制限事項

  • サードパーティのウィジェットは、このプレビュー リリースの WIP に登録されているデバイスでのみローカルでテストできます。
  • ウィジェットは、パッケージ化された Win32 アプリに対してのみ作成できます。 プログレッシブ Web Apps (PWA) のウィジェットは、Microsoft Edge 108 の一部としてサポートされる予定です。

DisplayInformation

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

WinUI 3

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

WinUI 3 は、WinUI 2.8 の最新のコントロール、スタイル、および動作で更新されました。 これらの更新プログラムには、 InfoBadge コントロールの追加、アクセシビリティとハイ コントラスト モードの改善、コントロール間のバグ修正が含まれます。 詳細については、WinUI 2.7 と WinUI 2.8 のリリース ノートを参照してください。

修正された問題

既知の制限事項

  • Visual Studio 2022 17.4.0 で新しい WinUI 3 プロジェクトを作成すると、WinAppSDK のプレビュー バージョンが参照されます。 NuGet パッケージ マネージャーを使用して、このリリースへの参照を更新します。
  • MediaPlayerElement.Source を相対 URI (ms-appx/ms-resource) に設定すると、パッケージ化されていないアプリで失敗します。 推奨される回避策は、相対 ms-appx:/// URI を完全に解決された file:/// URI に変換することです。

.NET で開発されたアプリのトリミング

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

トリミング、トリミングの制限 (トリミング可能な型に対するリフレクションなど)、およびトリミング警告を有効にする方法の詳細については、「 自己完結型のデプロイと実行可能ファイルをトリミングする」を参照してください。 開発者は、トリミング後にアプリを十分にテストして、すべてが期待どおりに動作することを確認する必要があります。 詳細については、GitHub の問題 2478 を参照してください。

Visual Studio Arm64 のサポート

Project Reunion (現在の WinAppSDK) 0.5 の早い段階で、WinAppSDK で開発されたアプリは Arm64 で実行できました。 Visual Studio 17.3 Preview 2 以降では、Arm64 デバイスで WinAppSDK を使用してネイティブ アプリケーションを開発できます。

Arm64 デバイスでの開発を開始するには、「Windows on Arm and Arm64 Visual Studio」を参照してください。

通知

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

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

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

重大な変更

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

修正された問題

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

既知の制限事項 (通知)

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

ウィンドウ化

完全なタイトル バーのカスタマイズは、Windows 10 Version 1809以降、AppWindowTitleBar クラスを通じて使用できるようになりました。 AppWindowTitleBar.ExtendContentIntoTitleBar を に設定してコンテンツをtrueタイトル バー領域に拡張し、SetDragRectangles を設定してドラッグ領域を定義できます (その他のカスタマイズ オプションに加えて)。

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

既知の制限事項 (ウィンドウ)

Windows 10では、基本的なタイトル バーのカスタマイズはサポートされていません。 これには 、BackgroundColorInactiveBackgroundColorForegroundColorInactiveForegroundColorIconShowOptions が含まれます。 これらのプロパティを呼び出すと、これらのプロパティは自動的に無視されます。 他のすべての AppWindowTitleBar API は、Windows 10 Version 1809以降で動作します。 キャプション ボタンの色 API (特に) と Height の場合、 ExtendsContentIntoTitleBar を に設定する true必要があります。それ以外の場合は、自動的に無視されます。

アクセス制御

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

その他の制限事項と既知の問題

重要

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

  • Visual Studio の [テスト] 出力ウィンドウで、単体テストがエラーで失敗 REGDB_E_CLASSNOTREG する場合があります。 回避策として、プロジェクト ファイルに を追加 <WindowsAppContainer>true</WindowsAppContainer> できます。
  • .NET PublishSingleFile はサポートされていません。
  • Bootstrapper と Undocked RegFree WinRT 自動初期化子の既定値は、実行可能ファイル (OutputType=Exe または WinExe) を生成するプロジェクトにのみ設定されています。 これにより、既定では、クラス ライブラリ DLL やその他の非実行可能ファイルに自動初期化子を追加できなくなります。
    • 実行可能でない (ブートストラップを初期化しない汎用実行可能ファイルによって読み込まれたテスト DLL など) 自動初期化子が必要な場合は、 または <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>を使用して<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>、プロジェクトで自動初期化子を明示的に有効にすることができます。
  • Microsoft.WindowsAppRuntime.Release.Net.dllは常に Arm64 バイナリであり、x86 および x64 アプリでは機能しません。 ブートストラップ API を明示的に呼び出す場合、Microsoft.WindowsAppRuntime.Release.Net.dll アセンブリは使用されません。 回避策として、NuGet パッケージと共に配布されるこのソース ファイルにバージョン定数を含めることができます: '..\include\WindowsAppSDK-VersionInfo.cs' または自動初期化子を使用します。

バージョン 1.1

Windows アプリ SDKの安定チャネルの 1.1.x 系列の最新リリースは、バージョン 1.1.5 です。 1.1.x では、すべての安定チャネル機能がサポートされます (リリース チャネル別の機能Windows アプリ SDK参照)。

バージョン 1.1.5

これは、1.1 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • マイカが有効になっているとアクリルが機能しない問題を修正しました。 詳細については、GitHub の 問題 7200 を参照してください。
  • WindowsAppRuntime インストーラーに依存するアプリ (パッケージ化されていないアプリなど) が ARM64 マシンで実行されない問題Windows 10修正しました。 詳細については、GitHub の 問題 2564 を参照してください。

バージョン 1.1.4

これは、1.1 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • 1.0.x からの回帰を修正し、多数の項目でスクロールすると ListView、TreeView、およびその他の 'List' コントロールがクラッシュする問題を修正しました。 詳細については、GitHub の 問題 7230 を参照してください。
  • DispatcherQueue でエンキューされたコールバックが呼び出されなくなる問題を修正しました。
  • 同じアプリ セッションで複数回呼び出 DeploymentManager.Initialize すとアプリがクラッシュする問題を修正しました。
  • Arm64 Visual Studio で C# アプリのビルドに失敗する問題を修正しました。 詳細については、GitHub の 問題 7140 を参照してください。
  • エラー処理が正しくないための XAML イメージング コードの断続的なクラッシュを修正しました。
  • ItemsRepeater で親 UserControl でイベント ハンドラーをアタッチするときのメモリ リークの問題を修正しました。 詳細については、GitHub の 問題 6123 を参照してください。
  • サイドロード時にパッケージの自動更新を有効にするようにアプリ プロジェクトが構成されている場合に Visual Studio 17.3 でビルド エラーが発生する問題を修正しました (.appinstaller など)。 詳細については、 問題 2773 を参照してください。
  • メイン パッケージとシングルトン パッケージが既にインストールされている場合に DeploymentManager::GetStatus が返されるように Initialize を呼び出すストア分散パッケージ アプリ (プッシュに必要) が冗長に呼び出される Package Install Needed 問題を修正しました。 これにより、アプリの起動時にパフォーマンスが低下しました。
  • クリーンアップ イベントを開くことができない場合に無視されることを意図した場合に、単一インスタンス アプリで例外が発生する問題を修正しました。 詳細については、GitHub の PR を参照してください。

バージョン 1.1.3

これは、1.1 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • アプリの最初のページに ProgressBar、ProgressRing、PipsPager、PersonPicture、または Expander コントロールを含めると XAML がクラッシュする関連する一連の問題を修正しました。 詳細については、GitHub の 問題 7164 を参照してください。
  • x64 インストーラーが Windows アプリ SDK ランタイムのインストールに失敗する問題を修正しました。 詳細については、GitHub の 問題 2713 を参照してください。
  • より高いバージョンのランタイムがインストールされている場合に WindowsAppRuntime がインストールに失敗する問題を修正しました。 詳細については、GitHub の ディスカッション 2708 を参照してください。

バージョン 1.1.2

これは、1.1 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • ダイアログが開いているときにウィンドウを閉じるときに XAML がクラッシュする問題を修正しました。 詳細については、GitHub の 問題 1032 を参照してください。
  • StyleCop の警告を防ぐために、C# ファイルにタグを追加しました <auto-generated> 。 詳細については、GitHub の 問題 4526 を参照してください。
  • 一致するフレームワーク パッケージがインストールされていないときに MddBootstrapInitialize を呼び出すと、アクセス違反エラーとクラッシュが発生する問題を修正しました。 詳細については、GitHub の 問題 2592 を参照してください。
  • Visual Studio で C# WinUI 3 項目テンプレートが見つからない問題を修正しました。 詳細については、GitHub の 問題 7148 を参照してください。
  • システム ユーザーとして実行すると、WindowsAppRuntime インストーラーが失敗する問題を修正しました。 詳細については、GitHub の 問題 2546 を参照してください。

バージョン 1.1.1

これは、1.1 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • ドラッグ アンド ドロップ操作中にアプリがクラッシュすることがある問題を修正しました。 詳細については、GitHub の 問題 7002 を参照してください。
  • AppWindowPresenterKind を FullScreen から Default に切り替えるとタイトル バーが消える問題を修正しました。
  • Bootstrapper API が と のようなApiInformation.IsPropertyPresentApiInformation.IsMethodPresent場合、パッケージ化されていないアプリでハンドルされない例外が発生する問題を修正しました。 詳細については、GitHub の 問題 2382 を参照してください。
  • ペン入力でアプリケーションを最大化するとアプリがフリーズする問題を修正しました。

バージョン 1.1 安定版

以降のセクションでは、1.1 安定版の新機能と更新された機能、制限事項、既知の問題について説明します。

Note

C# 開発者には、次のいずれかの .NET SDK バージョン (またはそれ以降) が必要です。6.0.202、6.0.104、5.0.407、5.0.213。 .NET SDK のバージョンを更新するには、 .NET のダウンロード または最新バージョンの Visual Studio への更新に関するページを参照してください。 必要な .NET SDK バージョンがない場合、NuGet パッケージを更新すると 、"このバージョンの WindowsAppSDK にはバージョン 1.6 以上WinRT.Runtime.dll必要です" のようなエラーが表示されます。

アプリのライフサイクル & の再起動

アプリは、既存の RegisterApplicationRestart API から構築された特定の引数&の状態を使用して明示的な再起動を開始し、OS に登録して更新プログラムで再起動し、再起動シナリオをハングできるようになりました&。

新機能:

  • パッケージ化されたデスクトップ アプリまたはパッケージ化されていないデスクトップ アプリは、コマンドで終了および再起動でき、API を使用して再起動されたインスタンスの任意のコマンドライン文字列に AppInstance.Restart() アクセスできます。
    • これは、UWP RequestRestartAsync() API のリフトアンド同期バージョンであり、引数を使用して再起動を有効にし、再起動が失敗した場合は を AppRestartFailureReason 返します。
    • 使用状況&のリファレンス情報については、GitHub の「Restart API」ドキュメントを参照してください。

WinUI 3

WinUI 3 は、Windows App SDK 用のネイティブ ユーザー エクスペリエンス (UX) フレームワークです。 このリリースには、WinAppSDK 1.0 の新機能と、1.0 & 1.1 プレビュー リリースからのいくつかの安定性の向上が含まれています。

新機能:

  • マイカと背景アクリルは、WinUI 3 アプリケーションで使用できるようになりました。
  • 1.0.1 で最初に導入されたのは、WinUI 3 アプリケーションで 同じスレッド上に複数のウィンドウを 作成するための安定化と有効化です。 詳細については 、問題 5918 を参照してください。

バグを修正しました:

  • マイカを使用すると、ウィンドウが 2 つの画面で均等に分割されるとアプリがクラッシュする問題を修正しました。 詳細については、GitHub の 問題 7079 を参照してください。
  • WebView2 SDK を 1020.46 から 1185.39 にアップグレードして C/C++ ランタイム (CRT) がインストールされていない場合に、起動時に WebView2 を含む C# アプリがクラッシュする問題を修正しました。
  • 一部の丸い角が単色である必要がある場合にグラデーションが表示される問題を修正しました。 詳細については、GitHub の 問題 6076&問題 6194 を参照してください。
  • generic.xaml で更新されたスタイルが見つからない問題を修正しました。
  • ListView の末尾までスクロールするとアプリがクラッシュするレイアウト サイクルの問題を修正しました。 詳細については、GitHub の 問題 6218 を参照してください。
  • ドラッグ アンド ドロップが有効になっていると、ユーザーが要素を削除できない問題を修正しました。 詳細については、GitHub の 問題 7008 を参照してください。

既知の制限事項:

  • カスタム タイトル バーを使用する場合、テーマの変更時にキャプション コントロールの色は変更されません。
  • ダイアログが開いている間にユーザーがウィンドウを閉じると、XAML がクラッシュします。

デプロイ

新機能:

既知の制限事項:

  • Windows App Runtime インストーラー (WindowsAppRuntimeInstall.exe) を実行するには、サイドローディングを有効にする必要があります。 詳細については、GitHub の 問題 2469 を参照してください。
  • Visual Studio プロジェクト メニューを使用して MSIX パッケージを作成すると、一部のシナリオで Visual Studio がクラッシュする可能性があります。 この問題は、Visual Studio バージョン 17.3 Preview 2 で修正され、17.2 にサービスされます。 この問題が発生した場合は、コマンド ラインから MSIX を生成するか、パッケージ化されていないプロジェクトに切り替えるか、Windows アプリ SDK 1.0 に戻すことで回避できます。
  • MSIX と共にパッケージ化された自己完結型アプリケーションは、1809 でサポートされていないため、起動時にアプリがクラッシュします。

Elevation

昇格された特権でアプリを実行できるようになりました。

既知の制限事項:

環境変数マネージャー

環境変数マネージャーは、Windows アプリ SDK 1.1 で導入された新しい API です。 環境変数マネージャーを使用すると、開発者は 1 つの API サーフェスからプロセス、ユーザー、およびマシンスコープ内の環境変数にアクセスして変更できます。

パッケージ化されたアプリケーションから環境変数マネージャーを使用すると、すべての環境変数操作が記録されます。 パッケージが削除されると、すべての環境変数操作が元に戻されます。

新機能:

  • プロセス、ユーザー、マシンのスコープで環境変数を取得して設定します。
  • 環境変数マネージャーを使用するパッケージが削除されると、自動環境変数が元に戻ります。
  • PATH および PATHEXT 用の特定の API が含まれています。

既知の制限事項:

  • Windows 11でのみ使用できます

MRT Core

MRT Core は、Windows アプリ SDK の一部として配布される最新の Windows リソース管理システムの簡素化されたバージョンです。

修正された問題:

  • .NET SDK 6.0.300 で VS UI を使用してリソース ファイルを追加すると、リソースのインデックスが既定で作成されない問題が修正されました。 以前の .NET SDK バージョンを使用している場合は、1.0 Stable のリリース ノートに記載されている回避策を引き続き使用してください。 詳細については、GitHub の 問題 1786 を参照してください。
  • Visual Studio 2022 17.2 で、パッケージ化されていない C++ WinUI 3 アプリでリソース URI が正しくビルドされない問題が修正されました。 以前のバージョンの Visual Studio を使用している場合は、この修正プログラムを受け取るために Visual Studio を 17.2 に更新してください。

既知の制限事項:

  • .NET プロジェクトでは、アプリが既にビルドされている場合、コピーしてプロジェクト フォルダーに貼り付けたリソース ファイルには、F5 でインデックスが作成されません。 回避策として、アプリをリビルドします。 詳細については、GitHub の 問題 1503 を参照してください。

詳細については、「MRT Core を使用してリソースを管理する」を参照してください。

通知

パッケージ化された (外部の場所でパッケージ化されたアプリを含む) アプリとパッケージ化されていないアプリの開発者は、Windows 通知を送信できるようになりました。

新機能:

  • パッケージ化されたアプリとパッケージ化されていないアプリのアプリ通知のサポート。
    • 開発者は、アプリ通知 (トースト通知とも呼ばれます) をローカルまたは独自のクラウド サービスから送信できます。 「アプリ通知の概要」を参照してください。
  • パッケージ化されたアプリとパッケージ化されていないアプリのプッシュ通知のサポート。

既知の制限事項:

  • 管理者特権のアプリからの通知の送信はサポートされていません。 PushNotificationManager::IsSupported() では、昇格モードのチェックは実行されません。

ウィンドウ化

USER32.dllで実装されている機能へのプログラミングアクセスを容易にするために ( Windows とメッセージを参照)、このリリースでは、その機能の多くがそれ自体に AppWindow 表示されます。

新機能:

  • 既存のウィンドウを含むアプリでは、 を呼び出 AppWindow.ShowOnceWithRequestedStartupStateすことによって、ウィンドウの表示方法をより詳細に ShowWindow(SW_SHOWDEFAULT)制御できます。
  • アプリでは、呼び出し時にウィンドウをアクティブ化するかどうかを指定しながら、ウィンドウを表示、最小化、または復元できます。
  • アプリは、クライアント領域以外のサイズを計算して特定のクライアント領域サイズを取得することなく、Win32 座標でウィンドウのクライアント領域サイズの特定のディメンションを決定できるようになりました。
  • 追加の WinRT API は、 SetWindowPos の hWndInsertAfter 機能に基づくウィンドウの z オーダー管理をサポートするために使用できます。
  • を使用してカスタム タイトル バーを描画するアプリでは AppWindowTitleBar.ExtendsContentIntoTitleBar 、オプションを PreferredTitleBarHeight 設定できます。 標準の高さのタイトル バーか、対話型コンテンツのためのより多くのスペースを提供する高いタイトル バーのどちらかを選択できるようになりました。 背の高い タイトル バー を使用する場合のアドバイスについては、Fluent のデザイン ガイドラインのタイトル バーに関するページを参照してください。

修正された問題:

  • 全画面表示発表者が初めて呼び出されたときに、ウィンドウが画面全体に正しく収まるようになりました。 詳細については、GitHub の 問題 1853 を参照してください。
  • を使用して AppWindow::GetFromWindowId 作成された Windows は OverlappedPresenter 、既定の発表者として を持ちますが、他の API からのウィンドウ スタイルの変更に関する制限はありません。 AppWindow::Create を使用して作成された Windows では、最初から既定の発表者ガードレールが設定されます。 詳細については、GitHub の 問題 2049 を参照してください。
  • API を OverlappedPresenter.SetBorderAndTitlebar 使用してキャプション ボタンと罫線を非表示にすると、最大化されると 1px の上罫線が作成されます。 これは解決されました。 詳細については、GitHub の 問題 1693 を参照してください。

既知の制限事項:

  • AppWindowTitlebar API を使用して標準のタイトル バーの色をカスタマイズすると、標準のタイトル バーと比較してアイコンとテキストがずれます。 詳細については、GitHub イシュー 2459 を参照してください。

  • GitHub イシュー 2049 (上記で見た) を解決するときに、次のバグが導入されました。GetFromWindowId から取得した AppWindow に AppWindowPresenter を適用した後、USER32 API を呼び出して、その発表者によって追跡されているウィンドウ スタイルを変更し、既定の発表者を再適用してウィンドウの以前の状態に戻そうとします。 結果は、タイトル バーのないウィンドウになります。 アプリ内の発表者に依存し、既定以外の発表者が適用された時点でウィンドウ スタイルを変更するために USER32 の呼び出しを使用する場合は、このバグが処理されるまで、適切なウィンドウ動作を確保するための回避策を追加する必要がある場合があります。 この問題を回避する方法のテンプレートとして、次のコード スニペットを使用できます。

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

WinUI カスタム コントロールを含む C# Windows ランタイム コンポーネントがサポートされるようになりました。 これにより、コンポーネント作成者は、C#で作成されたランタイム コンポーネントを任意の WinRT 互換言語 (C++/WinRT など) に配布できます。 「チュートリアル — WinUI 3 コントロールを使用して C# コンポーネントを作成し、GitHub のWindows アプリ SDKとサンプルを使用する C++/WinRT アプリから使用して開始する」を参照してください。

その他の制限事項と既知の問題

  • 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

Windows アプリ SDKの安定チャネルの 1.0.x 系列の最新リリースは、バージョン 1.0.4 です。 1.0.x では、すべての安定したチャネル機能がサポートされます (リリース チャネルのリリース チャネル別の機能に関するセクションWindows アプリ SDK参照)。

バージョン 1.0.4

これは、1.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • Page.TopAppBar または Page.BottomAppBar として使用すると、AppBars が画面にレンダリングされない問題を修正しました。
  • MUXControls.dllの WinUI コントロールを使用するパッケージ名が 12 文字以下のアプリが直ちにクラッシュする問題を修正しました。 詳細については、GitHub の 問題 6360 を参照してください。
  • キーボード ショートカットやその他のシナリオで問題が発生するタッチ入力の問題を修正しました。 詳細については、GitHub の 問題 6291 を参照してください。
  • MSIX でパッケージ化されたアプリ、または自己完結型として展開されたアプリが展開に失敗する問題を修正しました。
  • ドラッグ アンド ドロップ操作中にアプリがクラッシュすることがある問題を修正しました。 詳細については、GitHub の 問題 7002 を参照してください。

バージョン 1.0.3

これは、1.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • C/C++ ランタイム (CRT) がインストールされていない場合に、WebView2 を使用した C# アプリが起動時にクラッシュする問題を修正しました。
  • キーボード ショートカットやその他のシナリオで問題が発生するタッチ入力の問題を修正しました。 詳細については、GitHub の 問題 6291 を参照してください。

: 通常、サービス リリースでは機能を追加しませんが、このリリースの WebView2 修正プログラムでは、最新バージョンの WebView2 SDK (1020.46 から 1185.39) に更新する必要がありました。 WebView2 ランタイムの詳細については、「WebView2 1.0.1185.39」および「アプリと WebView2 ランタイムを配布する」の詳細については、「WebView2 SDK のリリース ノート」を参照してください。

バージョン 1.0.2

これは、1.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

バグの修正

  • ListView の末尾までスクロールするとアプリがクラッシュするレイアウト サイクルの問題を修正しました。 詳細については、GitHub の 問題 6218 を参照してください。
  • C/C++ ランタイム (CRT) がインストールされていない場合に C# アプリが起動時にクラッシュする問題を修正しました。 ただし、WebView2 を使用する C# アプリでは、CRT は引き続き必要です。 詳細については、GitHub の 問題 2117 を参照してください。
  • 単一プロジェクトの MSIX を使用するアプリケーションで .appinstaller ファイルが生成されない問題を修正しました。 詳細については、GitHub の 問題 1821 を参照してください。
  • WinUI アプリケーションで .NET 6 dotnet buildがサポートされない問題を修正しました。

Version 1.0.1

これは、重要なバグ修正と 1.0 リリースのマルチウィンドウ サポートを含む、Windows アプリ SDKのサービス リリースです。

バグの修正

  • 有効な ImplicitUsings で MddBootstrapAutoinitializer がコンパイルされない問題を修正しました。 詳細については、GitHub の 問題 1686 を参照してください。
  • WebView2 のフォーカスが予期せず失われ、入力と選択の問題が発生する問題を修正しました。 詳細については、GitHub の Issue 5615&issue 5570 を参照してください。
  • WinUI 3 アプリでカスタム タイトル バーを使用すると、Visual Studio のアプリ内ツール バーがクリックできない問題を修正しました。
  • WinUI 3 アプリでカスタム タイトル バーを使用しているときにスナップ レイアウトが表示されない問題を修正しました。 詳細については、GitHub の Issue 6333&issue 6246 を参照してください。
  • Window.SetTitlebar が読み込み中の UIElement で呼び出されたときに Window.ExtendsContentIntoTitleBar プロパティを設定するときに例外が発生する問題を修正しました。
  • 単一プロジェクトの MSIX アプリで がサポート dotnet buildされない問題を修正しました。
  • パッケージ化されたアプリをインストールした後に、パッケージ化されていないアプリがインストールされない問題を修正しました。 詳細については、GitHub の 問題 1871 を参照してください。
  • マウスドラッグ操作中のパフォーマンスの低下に関する問題を修正しました。
  • パッケージ化されていないアプリで GetWindowIdFromWindow() を呼び出すときのクラッシュを修正しました。 詳細については、GitHub の ディスカッション 1891 を参照してください。

バージョン 1.0 の 制限事項と既知の問題 は、バージョン 1.0.1 にも適用されます。

さらに、カスタム タイトル バーを持つアプリの場合、このリリースでは、ドラッグ&ドロップ操作に使用されるガラス ウィンドウの修正を含む変更 (および多数の問題を修正) しました。 既定値と動作を使用することをお勧めします (試してみる)。 タイトル バーで既定のキャプション ボタンが対話型になるように余白を使用している場合は、タイトル バーの背景を赤に設定し、余白を調整してドラッグ領域をキャプション コントロールに拡張することで、ドラッグ領域を視覚化することをお勧めします。

新機能

WinUI 3 アプリケーションで 、同じスレッドに複数のウィンドウを 作成できるようになりました。 詳細については 、問題 5918 を参照してください。

バージョン 1.0 安定版

以下のセクションでは、1.0 安定版の新機能と更新された機能、制限事項、既知の問題について説明します。

WinUI 3

WinUI 3 は、Windows App SDK 用のネイティブ ユーザー エクスペリエンス (UX) フレームワークです。 このリリースでは、Windows App SDK 0.8 からの複数の新機能が追加され、1.0 プレビュー リリースからの問題が安定化されました。

新機能と機能の更新:

  • 新しいコントロール (PipsPager、Expander、BreadcrumbBar) が追加され、WinUI 2.6 からの最新の Windows スタイルを反映するように既存のコントロールが更新されました。
  • "空のアプリ, パッケージ化..." テンプレートを使用して新しいアプリケーションを作成することにより、WinUI で単一プロジェクト MSIX パッケージがサポートされています。 テンプレートを選択します。
  • Windows バージョン 1809 以降にパッケージ化されていない WinUI 3 アプリの展開がサポートされるようになりました。 詳細については、「 初めての WinUI 3 プロジェクトを作成 する」を参照してください。
  • WinUI 3 プロジェクトでは、ターゲット バージョンを Windows 10 バージョン 1809 に下げて設定できるようになりました。 以前は、バージョン 1903 までしか設定できませんでした。
  • アプリ内ツールバーで、WinUI パッケージ アプリ用のホット リロードおよびライブ ビジュアル ツリーが Visual Studio 2022 プレビュー 5 および GA でサポートされています。

重要な制限事項:

  • パッケージ化された WinUI アプリケーションとパッケージ化されていない WinUI アプリケーションの両方に関する既知の問題:

    • C++ Windows ランタイム コンポーネントを参照する C++ または C# アプリの実行時エラー:
      • 解決するには、Windows ランタイム コンポーネントの .vcxproj の末尾に次のターゲットを追加します。

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • 予想されるエラーは、WinRT の発生元のエラー (0x80004005: 'ms-appx:///BlankPage.xaml' からリソースを見つけることができません。' に似ています。

  • 単一プロジェクト MSIX を使用する WinUI アプリケーション (空のアプリ、パッケージ化テンプレート) の既知の問題:

    • パッケージ & がありませんVisual Studio を再起動するまでメニュー項目を発行する: Visual Studio 2019 と Visual Studio 2022 の両方で、空のアプリ、パッケージ化 (デスクトップの WinUI 3) プロジェクト テンプレートを使用して単一プロジェクト MSIX を使用して新しいアプリを作成する場合、Visual Studio を閉じて再度開くまで、プロジェクトを発行するコマンドはメニューに表示されません。
    • 単一プロジェクト MSIX を含む C# アプリは、"C++ (v14x) ユニバーサル Windows プラットフォーム ツール" オプション コンポーネントがインストールされないとコンパイルされません。 詳細については、「Windows アプリ SDKのツールをインストールする」を参照してください。
    • 参照される Windows ランタイム コンポーネントで定義されている型を使用する、単一プロジェクト MSIX を含むアプリでの潜在的な実行時エラー: 解決するには、アクティブ化可能なクラスのエントリを appxmanifest.xml に手動で追加します。
      • C# アプリケーションで予期されるエラーは、"COMException: クラスが登録されていません (0x80040154 (REGDB_E_CLASSNOTREG))" です。
      • C++/WinRT アプリケーションで予期されるエラーは、"winrt::hresult_class_not_registered" です。
  • パッケージ化されていない WinUI 3 アプリ (パッケージ化されていないアプリ) の既知の問題:

  • WinUI アプリケーションのパッケージ化と展開に関する既知の問題:

    • Package コマンドは、単一プロジェクト MSIX (空のアプリ、パッケージ化されたテンプレート) を使用する WinUI アプリではサポートされていません。 代わりに、Package & Publish コマンドを使用して MSIX パッケージを作成します。
    • Pack コマンドを使用して C# クラス ライブラリから NuGet パッケージを作成するには、アクティブな ConfigurationRelease であることを確認します。
    • NuGet パッケージを作成するために、Pack コマンドは C++ Windows ランタイム コンポーネントではサポートされていません。

詳細については、または WinUI を使用した開発を開始するには、次の情報を参照してください。

ウィンドウ化

Windows App SDK では、以前の使いやすい Windows.UI.WindowManagement.AppWindow プレビュー クラスを進化させ、Win32、WPF、および WinForms を含むすべての Windows アプリで利用できるようにする AppWindow クラスが提供されています。

新機能

  • AppWindow は、Windows のユーザー エクスペリエンスや他のアプリとうまく統合する、使いやすいウィンドウ化のシナリオを可能にする高度なウィンドウ化 API です。 アプリのコンテンツのシステム マネージド コンテナーを表す高水準の抽象化を表します。 これはコンテンツがホストされるコンテナーであり、ユーザーが画面上でアプリのサイズを変更したり移動したりするときにユーザーが操作するエンティティを表します。 Win32 に習熟している開発者にとって、AppWindow は HWND の高水準の抽象化と考えることができます。
  • DisplayArea は、HMONITOR の高水準の抽象化を表し、AppWindow と同じ原則に従います。
  • DisplayAreaWatcher により、開発者は、表示トポロジでの変更を観察し、システムで現在定義されている DisplayArea を列挙することができます。

詳細については、「アプリ ウィンドウの管理」を参照してください。

入力

これらは、WinUI をサポートする入力 API であり、開発者がより高度な入力対話を実現するための下位レベルの API サーフェスを提供します。

新機能

  • ポインター API: PointerPointPointerPointPropertiesPointerEventArgs は、XAML 入力 API を使用したポインター イベント情報の取得をサポートします。
  • InputPointerSource API: ポインター入力を報告するために登録されたオブジェクトを表し、XAML の SwapChainPanel API のためのポインター カーソルと入力イベントの処理を行います。
  • カーソル API: 開発者がカーソル ビットマップを変更できるようにします。
  • GestureRecognizer API: ポインター情報を指定したときに、ドラッグ、ホールド、クリックなどの特定のジェスチャを開発者が認識できるようにします。

重要な制限事項

  • すべての PointerPoint 静的ファクトリ関数が削除されました。GetCurrentPointGetCurrentPointTransformedGetIntermediatePointsGetIntermediatePointsTransformed
  • Windows App SDK では、ポインター ID を使用した PointerPoint オブジェクトの取得はサポートされていません。 代わりに、PointerPoint メンバー関数 GetTransformedPoint を使用して、既存の PointerPoint オブジェクトの変換されたバージョンを取得できます。 中間点として、PointerEventArgs メンバー関数 GetIntermediatePointsGetTransformedIntermediatePoints を使用できます。
  • プラットフォーム SDK API Windows.UI.Core.CoreDragOperation の直接使用は、WinUI アプリケーションでは機能しません。
  • PointerPoint プロパティ RawPositionContactRectRaw は、予測値ではない値 (OS 内の通常の値と同じ) を参照していたため、削除されました。 代わりに PositionContactRect を使用してください。 ポインター予測は、Microsoft.UI.Input.PointerPredictor API オブジェクトで処理されるようになりました。

アプリのライフサイクル

アプリのライフサイクル機能のほとんどは UWP プラットフォームに既に存在しており、デスクトップ アプリの種類 (特に、非パッケージ コンソール アプリ、Win32 アプリ、Windows フォーム アプリ、WPF アプリ) で使用するために Windows App SDK に取り込まれています。 UWP プラットフォーム自体に同等の機能があるため、これらの機能の Windows App SDK 実装は、UWP アプリでは使用できません。

重要

UWP アプリで作業している場合は、「UWP から Windows App SDK に移行する」を参照してください。

UWP 以外のアプリを MSIX パッケージにパッケージ化することもできます。 これらのアプリでは Windows App SDK のアプリのライフサイクル機能の一部を使用できますが、マニフェストの手法が使用できる場合はそれを使用する必要があります。 たとえば、Windows App SDK の RegisterForXXXActivation API を使用することはできず、代わりにマニフェストを使用してリッチ アクティベーションに登録する必要があります。

パッケージ アプリのすべての制約は、パッケージ化された WinUI アプリにも適用されます。また、以下で説明するように、追加の考慮事項があります。

重要な考慮事項:

  • リッチ アクティベーション: GetActivatedEventArgs

    • 非パッケージ アプリ: 完全に使用可能です。
    • パッケージ アプリ: 使用可能ですが、これらのアプリはプラットフォーム GetActivatedEventArgs を使用することもできます。 プラットフォームは Windows.ApplicationModel.AppInstance を定義し、Windows App SDK は Microsoft.Windows.AppLifecycle.AppInstance を定義していることに注意してください。 また、UWP アプリは FileActivatedEventArgsLaunchActivatedEventArgs などの ActivatedEventArgs クラスを使用できるのに対して、Windows App SDK AppLifecycle 機能はクラスではなくインターフェイス (たとえば、IFileActivatedEventArgsILaunchActivatedEventArgs など) を使用する必要があります。
    • WinUi アプリ: WinUI の App.OnLaunched には Microsoft.UI.Xaml.LaunchActivatedEventArgs が指定されるのに対して、プラットフォーム GetActivatedEventArgs は、Windows.ApplicationModel.IActivatedEventArgs を返し、WindowsAppSDK GetActivatedEventArgs は、プラットフォーム LaunchActivatedEventArgs を表すことができる Microsoft.Windows.AppLifecycle.AppActivationArguments オブジェクトを返します。
    • 詳細については、「リッチ アクティベーション」を参照してください。
  • リッチ アクティベーションの登録/登録解除

    • 非パッケージ アプリ: 完全に使用可能です。
    • パッケージ アプリ: 使用不可です。代わりにアプリの MSIX マニフェストを使用してください。
    • 詳細については、「リッチ アクティベーション」を参照してください。
  • 単一または複数のインスタンス化

    • 非パッケージ アプリ: 完全に使用可能です。
    • パッケージ アプリ: 完全に使用可能です。
    • WinUI アプリ: アプリが他のインスタンスを検出し、アクティブ化をリダイレクトする必要がある場合は、できるだけ早く、ウィンドウなどを初期化する前に実行する必要があります。これを有効にするには、アプリが DISABLE_XAML_GENERATED_MAIN を定義し、検出とリダイレクトを実行できるカスタム Main (C#) または WinMain (C++) を作成する必要があります。
    • RedirectActivationToAsync は非同期呼び出しであり、アプリが STA で実行されている場合は、非同期呼び出しで待機しないでください。 Windows フォームと C# WinUI アプリでは、必要に応じて、Main を非同期として宣言できます。 C++ WinUI と C# WPF アプリでは、Main を非同期として宣言することはできません。そのため、代わりに、STA をブロックしないように、リダイレクト呼び出しを別のスレッドに移動する必要があります。
    • 詳細については、「アプリのインスタンス化」を参照してください。
  • 電源/状態通知

    • 非パッケージ アプリ: 完全に使用可能です。
    • パッケージ アプリ: 完全に使用可能です。
    • 詳細については、「電源管理」を参照してください。

既知の問題:

  • 動詞ハンドラーのコマンド ライン テンプレートを設定するときに、ファイルの種類の関連付けによって %1 が %251 になるように誤ってエンコードされるため、非パッケージ Win32 アプリがクラッシュします。 部分的な回避策として、代わりにレジストリ値が %1 になるように手動で編集できます。 ターゲット ファイルのパスにスペースが含まれている場合も、失敗します。そのシナリオに対する回避策はありません。
  • これらの単一およびマルチインスタンス化のバグは、今後のサービス修正プログラムで修正される予定です。
    • X86 用にコンパイルした場合、AppInstance リダイレクトが機能しない
    • キーを登録し、登録を解除して再登録すると、アプリがクラッシュする

DWriteCore

DWriteCore は、DirectWrite の Windows App SDK 実装で、DirectWrite は、高品質のテキスト レンダリング、解像度に依存しないアウトライン フォント、Unicode テキストとレイアウトの完全サポートのための DirectX API です。 DWriteCore は、Windows 10、バージョン 1809 (10.0; ビルド 17763) までの Windows のバージョン上で実行される DirectWrite の一種で、クロスプラットフォームでの使用が可能になります。

機能 DWriteCore には、DirectWrite のすべての機能が含まれていますが、いくつかの例外があります。

重要な制限事項

  • DWriteCore には、次の DirectWrite 機能は含まれていません。
    • セッションごとのフォント
    • エンドユーザー定義文字 (EUDC) フォント
    • フォント ストリーミング API
  • 低レベルのレンダリング API のサポートは部分的です。
  • DWriteCore は Direct2D と相互運用できませんが、IDWriteGlyphRunAnalysisIDWriteBitmapRenderTarget を使用できます。

詳細については、「DWriteCore の概要」を参照してください。

MRT Core

MRT Core は、Windows アプリ SDK の一部として配布される最新の Windows リソース管理システムの簡素化されたバージョンです。

重要な制限事項

  • .NET プロジェクトでは、アプリが既にビルドされている場合、コピーしてプロジェクト フォルダーに貼り付けられたリソース ファイルには、F5 でインデックスが作成されません。 回避策として、アプリをリビルドします。 詳細については、問題 1503 を参照してください。
  • .NET プロジェクトでは、Visual Studio UI を使用してリソース ファイルがプロジェクトに追加されるとき、既定ではファイルにインデックスを設定できません。 詳細については、問題 1786 を参照してください。 この問題を回避するには、次のように CSPROJ ファイルのエントリを削除してください。
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • 非パッケージ C++ WinUI アプリの場合、リソース URI が正しく作成されていません。 この問題を回避するには、vcxproj に次の値を追加します。
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

詳細については、「MRT Core を使用してリソースを管理する」を参照してください。

デプロイ

新機能と機能の更新:

重要な制限事項

  • ブートストラップ API 用の .NET ラッパーは、Windows App SDK へのアクセスを簡略化するための非パッケージ .NET アプリケーションによる使用のみを目的としています。
  • 完全に信頼されているか、packageManagement の制限された機能を持つ MSIX パッケージ アプリのみが、デプロイ API を使用してメインとシングルトンのパッケージの依存関係をインストールするアクセス許可を持っています。 部分的に信頼されているパッケージ アプリのサポートは、今後のリリースで予定されています。
  • X64 システムで DeploymentManager.Initialize メソッドを使用する x86 アプリを F5 でテストする場合は、WindowsAppRuntimeInstall.exe を実行して、x64 フレームワークが最初にインストールされていることを確認します。 そうしないと、Visual Studio は x64 フレームワークをデプロイしないため、NOT_FOUND エラーが発生します。通常、これは Store のデプロイまたはサイドローディングを通じて発生します。

その他の制限事項と既知の問題

  • Any CPU ビルド構成のサポートがない: Windows App SDK を既存の .NET アプリケーションまたはコンポーネントに追加し、それが Any CPU をサポートする場合は、希望するアーキテクチャ x86x64、または arm64 を指定する必要があります。

  • .NET 5 から .NET 6 へのアップグレード: Visual Studio UI でアップグレードすると、ビルド エラーが発生する可能性があります。 回避策として、プロジェクト ファイル TargetFrameworkPackage を次のように手動で更新します。

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • C++ UWP ツールがインストールされていない場合、C# 単一プロジェクト MSIX アプリはコンパイルされません。 C# 単一プロジェクト MSIX プロジェクトがある場合は、C++ (v14x) ユニバーサル Windows プラットフォーム ツール オプション コンポーネントをインストールする必要があります。

  • Visual Studio 2019 の複数のバージョンがインストールされている場合、後続の言語 VSIX は Visual Studio 2019 へのインストールに失敗します。 Visual Studio 2019 の複数のバージョンがインストールされている場合 (たとえば、Release と Preview)、C++ "と" C# の両方に対して Windows App SDK VSIX をインストールすると、2 番目のインストールは失敗します。 解決するには、1 つ目の言語 VSIX の後に Visual Studio 2019 用の単一プロジェクト MSIX パッケージング ツールをアンインストールします。 この問題の詳細については、このフィードバックを参照してください。

  • DispatcherQueue.TryEnqueue (ディスパッチャー キュー スレッドで実行を再開するため) の代わりの手段は、Windows Implementation Library (WIL)resume_foreground ヘルパー関数を使用することです。

    1. プロジェクトに Microsoft.Windows.ImplementationLibrary NuGet パッケージへの参照を追加します。
    2. #include <wil/cppwinrt_helpers.h>pch.h に追加します。
    3. #include <winrt/Microsoft.UI.Dispatching.h>pch.h に追加します。
    4. ここで、co_await wil::resume_foreground(your_dispatcherqueue); を指定します。

バージョン 0.8

Windows アプリ SDKの安定チャネルの 0.8.x 系列の最新リリースは、バージョン 0.8.12 です。

注意

Windows App SDK は、以前は Project Reunion というコード ネームで知られていました。 バージョン 0.8 以前の一部の SDK 資産では、引き続きこのコード ネームが使用されます。 ドキュメントの一部では、既存のアセットや指定された旧リリースを参照する際に、Project Reunion が引き続き使用されています。

バージョン 0.8.12

これは、0.8.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

注意

C# 開発者には、次のいずれかの .NET SDK バージョンが必要です。5.0.213、5.0.407、6.0.104、6.0.202 (またはそれ以降)。 .NET SDK のバージョンを更新するには、 .NET のダウンロード または最新バージョンの Visual Studio への更新に関するページを参照してください。 必要な .NET SDK のバージョンがない場合、NuGet パッケージを更新すると 、"このバージョンの WindowsAppSDK にはバージョン 1.6 以上WinRT.Runtime.dll必要です" のようなエラーが表示されます。

バグ修正:

  • SwapChainPanel または WebView2 を使用したアプリが、アクセス違反のために予期しないクラッシュを発生させる問題を修正しました。

バージョン 0.8.11

これは、0.8.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

注意

C# 開発者には、次のいずれかの .NET SDK バージョンが必要です。5.0.213、5.0.407、6.0.104、6.0.202 (またはそれ以降)。 .NET SDK のバージョンを更新するには、 .NET のダウンロード または最新バージョンの Visual Studio への更新に関するページを参照してください。 必要な .NET SDK のバージョンがない場合、NuGet パッケージを更新すると 、"このバージョンの WindowsAppSDK にはバージョン 1.6 以上WinRT.Runtime.dll必要です" のようなエラーが表示されます。

バグ修正:

  • マウスを使用してテキストを選択すると、失われたフォーカス イベントが発生する回帰を修正しました。

バージョン 0.8.10

これは、0.8.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

注意

C# 開発者には、次のいずれかの .NET SDK バージョンが必要です。5.0.213、5.0.407、6.0.104、6.0.202 (またはそれ以降)。 .NET SDK のバージョンを更新するには、 .NET のダウンロード または最新バージョンの Visual Studio への更新に関するページを参照してください。 必要な .NET SDK のバージョンがない場合、NuGet パッケージを更新すると 、"このバージョンの WindowsAppSDK にはバージョン 1.6 以上WinRT.Runtime.dll必要です" のようなエラーが表示されます。

バグ修正:

  • ドラッグ アンド ドロップ操作中にアプリがクラッシュする原因となる問題を修正しました。

注意

Windows アプリ SDK 0.8.9 はリリースされませんでした。 0.8.8 より後に直接リリースされたバージョンは 0.8.10 です。

バージョン 0.8.8

これは、0.8.0 リリースの重要なバグ修正を含むWindows アプリ SDKのサービス リリースです。

注意

C# 開発者には、次のいずれかの .NET SDK バージョン (またはそれ以降) が必要です。6.0.202、6.0.104、5.0.407、5.0.213。 .NET SDK のバージョンを更新するには、 .NET のダウンロード または最新バージョンの Visual Studio への更新に関するページを参照してください。 必要な .NET SDK のバージョンがない場合、NuGet パッケージを更新すると 、"このバージョンの WindowsAppSDK にはバージョン 1.6 以上WinRT.Runtime.dll必要です" のようなエラーが表示されます。

バグ修正:

  • ソフト キーボードと一般的な操作に関する TextBox のタッチ入力の問題を修正しました。 これらの問題は、キーボード ショートカットにも影響を与えました。 詳細については、GitHub の 問題 6291 を参照してください。
  • アクティブな場合にアプリ ウィンドウが非アクティブと表示される場合がある問題を修正しました。
  • 外部プロセスで実行されている UIA (UI オートメーション) によって発生するパフォーマンスの問題を修正しました。
  • ペン入力に関するアプリの安定性の問題を修正しました。
  • UIA が原因でメニュー内の png アイコンのレンダリングが大幅に遅延する問題を修正しました。

バージョン 0.8.7

これは、C#/.NET アプリケーションのいくつかのパフォーマンス更新プログラムを含むWindows アプリ SDKのサービス リリースです。 このバージョンに更新するには、最新の Windows SDK パッケージ バージョンを参照する必要があります。 これを行うには、 プロパティ<WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion>.csprojからアプリが対象とする SDK バージョンを使用して、 プロパティをファイルにTargetFramework追加します。 次に例を示します。

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

このバージョンの Windows SDK プロジェクションは、今後の .NET 6 サービス リリースで利用できるようになります。 その .NET SDK 更新プログラムを使用できるようになったら、プロジェクト ファイルから プロパティを <WindowsSdkPackageVersion> 削除する必要があります。

このプロパティを設定しない場合は、次のようなエラーが表示されます。 "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

バージョン 0.8.6

これは、0.8.0 リリースの C#/.NET アプリケーションのいくつかのパフォーマンス向上を含む Windows App SDK のサービス リリースです。

このバージョンのWindows アプリ SDKに更新するには、最新の .NET SDK 12 月の更新プログラムがインストールされている必要があります (「.NET.NET 5 のダウンロードは 2022 年 5 月 10 日にサポート終了になります)」を参照してください)。 .NET SDK の最低限必要なバージョンがインストールされていない場合は、次のようなエラーが表示されます "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

バグの修正

パフォーマンスの向上の詳細な一覧については、C#/WinRT 1.4.1 リリース ノートを参照してください。

バージョン 0.8.5

これは、0.8.0 リリースの追加の重要なバグ修正が含まれている Windows App SDK のサービス リリースです。

バグの修正

  • ポインター入力を使用する WinUI アプリがクラッシュする原因となっている問題を修正しました。
  • Windows 11 でタイトル バー ボタン (最小、最大、閉じる) の角が丸くなっていない問題を修正しました。
  • Windows 11 の最大化/復元ボタンにマウス ポインターを合わせたときにレイアウトのサイズ変更オプションが表示されない問題を修正しました。
  • PointCollection オブジェクトを作成する際のクラッシュ例外の原因となる問題を修正しました。 詳細については、Github の問題 971 を参照してください。

バージョン 0.8 の制限事項と既知の問題は、以下のセクションで特にマークされていない限り、バージョン 0.8.5 にも適用されます。

バージョン 0.8.4

これは、0.8.0 リリースの追加の重要なバグ修正が含まれている Windows App SDK のサービス リリースです。

バグの修正

  • ContentDialog によって隠されず、タイトル バーのボタンを丸くした、カスタム タイトル バーの修正。
  • 表示スケールが変更された場合の画像処理におけるクラッシュの修正。
  • UI が表示されない、または正しくクリップされないクリッピング バグの修正。

バージョン 0.8 の制限事項と既知の問題は、以下のセクションで特にマークされていない限り、バージョン 0.8.4 にも適用されます。

バージョン 0.8.3

これは、0.8.0 リリースの追加の重要なバグ修正が含まれている Windows App SDK のサービス リリースです。

バグの修正

ウィンドウを最小化してから復元するときにキーボード フォーカスが失われ、フォーカスを復元するためにマウス クリックが必要でした。

バージョン 0.8 の制限事項と既知の問題は、以下のセクションで特にマークされていない限り、バージョン 0.8.3 にも適用されます。

バージョン 0.8.2

これは、0.8.0 リリースの追加の重要なバグ修正が含まれている Windows App SDK のサービス リリースです。

バグ修正

  • Windows App SDK と WinUI 3 は、Visual Studio 2022 プレビュー 2 以降でサポートされるようになりました。
  • .NET アプリの場合、列挙型の配列を渡す際に次のエラーが発生する場合があります。Object contains non-primitive or non-blittable data.
  • テキスト ボックス内で手書きパネルを使用して書き込むと、クラッシュが発生します
  • アイコン/画像が、モニターのスケール値に基づくのではなく、常に 100% のスケール値で読み込まれます
  • EventSource<T> のガベージ コレクションにより、後続のハンドラーの登録を解除するためのエラーが発生します (詳細については、GitHub の問題ページを参照してください)
  • セキュリティ修正 – 詳細は、CVE-2021-34533 を参照してください。
  • 表示スケールを変更した後、SwapChainPanel.CompositionScaleChanged が正しくない CompositionScale 値を返す場合があります

バージョン 0.8 の制限事項と既知の問題は、以下のセクションで特にマークされていない限り、バージョン 0.8.2 にも適用されます。

バージョン 0.8.1

これは、0.8.0 リリースのいくつかの重要なバグ修正が含まれている Windows App SDK のサービス リリースです。

バグ修正

  • Windows App SDK が最新の Windows Insider ビルドで実行できない
  • ドロップダウンに表示されない値を入力すると、EditableComboBox でクラッシュする
  • WebView2 では、フォーカスを受け取った後、ユーザーが Tab キーを押して移動できない
  • 名前空間のあいまいさを回避するために、WinUI で生成されたコードの Windows.Foundation.Metadata.DefaultOverload 名前空間を完全修飾する
    • これにより、バグ #5108 が修正されました。
  • セキュリティ修正 – 詳細は、CVE-2021-34489 を参照してください。

バージョン 0.8 の制限事項と既知の問題は、以下のセクションで特にマークされていない限り、バージョン 0.8.1 にも適用されます。

バージョン 0.8.0 安定版

新機能と更新プログラム

このリリースでは、すべての安定チャネル機能がサポートされます。

WinUI 3

このリリースには、WinUI 3 全体での多くのバグ修正と強化された安定化が含まれています。 これらは、WinUI 3 - Project Reunion 0.5 のリリース以降の WinUI 3 での新しいすべての変更点です。

  • ピボット コントロールが再度追加され、任意の WinUI 3 アプリで使用できます。

  • このリリースには、Project Reunion v0.5.5、v0.5.6、v0.5.7 のすべてのバグ修正が含まれています。

  • 次を含む新しいバグ修正。

    • TextBox 内でマウスを右クリックすると、アプリケーションがクラッシュする
    • NavigationView により、UWP でクラッシュが発生する (Reunion 0.5 Preview)
    • ProgressBar で一時停止とエラー オプションの違いが表示されない
    • テキスト スタイルのコピー/貼り付け/変更時に RichEditBox でクラッシュする
    • SetTitleBar が設定されていない場合、または null の場合、ウィンドウのキャプション ボタンが誤って配置される

    このリリースで解決されたすべてのバグの一覧については、GitHub リポジトリを参照してください。

  • ColorHelper.ToDisplayName API は使用できなくなりました。

  • 次の型が削除されました。

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    代わりに、Windows.Graphics.IGeometrySource2D および Windows.Graphics.IGeometrySource2DInterop を使用してください。

  • Microsoft.System 名前空間内のすべての型が、DispatcherQueue クラスを含めて Microsoft.UI.Dispatching 名前空間に移動されました。

  • HostBackdrop は WinUI 3 では BackgroundSource としてサポートされないため、 AcrylicBrush.BackgroundSource プロパティが削除されました。

WinUI の詳細については、「Windows UI 3 ライブラリ (WinUI)」を参照してください。

WinUI 3 のコントロールと機能の動作を確認するには、 GitHub から WinUI 3 ギャラリー アプリを複製してビルドするか、 Microsoft Store からアプリをダウンロードします

WinUI を使用して開発を開始するには、次の記事を参照してください。

DWriteCore

DWriteCore のこのリリースには、次の新機能と更新された機能が含まれています。 DWriteCore の紹介と説明については、「DWriteCore の概要」を参照してください。

注意

DWriteCoreCreateFactory は、DirectWrite のシステム バージョンによってエクスポートされる DWriteCreateFactory 関数と機能的に同じです。 DWriteCore.libDWrite.lib の両方をリンクした場合のあいまいさ回避するために、DWriteCore には異なる名前が付いています。

DWriteCore と DirectWrite API リファレンスについては、「DWriteCore API リファレンス」と「DirectWrite API リファレンス」を参照してください

MRTCore

  • リソースをプロジェクトに追加すると、リソースのビルド アクションが自動的に設定されるため、プロジェクトを手動で構成する必要性が少なくなります。

制限事項

  • このリリースは、Windows Insider Program の Dev チャネルでは現在サポートされていません。 これはバージョン 0.8.1 で修正されています

  • デスクトップ アプリ (C# または C++ デスクトップ): このリリースは、MSIX を使用してパッケージ化されたデスクトップ アプリ (C++ または C#) でのみ使用できます。 非パッケージ デスクトップ アプリで Windows App SDK を使用するには、試験的リリース チャネルを使用する必要があります。

重要

UWP アプリで作業している場合は、「UWP から Windows App SDK に移行する」を参照してください。

既知の問題

  • ライブ ビジュアル ツリー、ライブ プロパティ エクスプローラー、ホット リロードのバージョン 0.8 以降などの WinUI 3 ツールでは、Visual Studio 2019 16.11 プレビュー 3 以降が必要です。

  • 現在 WinUI 3 と Windows App SDK 0.8 を使用しているアプリでは、Project Reunion 0.5 を使用するクラス ライブラリを使用できません。 Windows App SDK 0.8 を使用するようにクラス ライブラリを更新してください。

  • .NET アプリはビルド 18362 以降をターゲットにする必要があります。TFM は net6.0-windows10.0.18362 以降に設定する必要があり、パッケージ 化プロジェクトは 18362 以降に設定する必要があります。 詳細については、GitHub の問題 #921 を参照してください。

  • ライト モードとダーク モードの切り替えを頻繁に行うと、クラッシュが発生する可能性があります。

  • .NET アプリの場合、列挙型の配列を渡す際に次のエラーが発生する場合があります。Object contains non-primitive or non-blittable data.これはバージョン 0.8.2 で修正されています

  • .NET アプリの場合、現在、Visual Studio UI を使用してアプリ リソースとしてインデックスが取得されるイメージをオプトアウトする方法はありません。 この問題を回避するには、Directory.Build.targets をプロジェクトに追加し (手順については「ビルドをカスタマイズする- Visual Studio」を参照してください)、次のようにしてイメージを削除します。

    • 特定のイメージを削除するには (相対パスが必要であることに注意してください):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • メタデータに基づいてイメージを削除するには:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    この問題の修正は、今後のリリースで予定されており、その時点で上記の回避策は不要になります。

バージョン 0.5

Windows アプリ SDKの安定チャネルの 0.5.x 系列の最新リリースは、バージョン 0.5.9 です

新機能と更新プログラム

このリリースでは、すべての安定チャネル機能がサポートされます。

既知の問題と制限事項

このリリースには、次の制限事項と既知の問題があります。

  • デスクトップ アプリ (C# または C++ デスクトップ): このリリースは、MSIX を使用してパッケージ化されたデスクトップ アプリ (C++ または C#) でのみ使用できます。 非パッケージ デスクトップ アプリで Windows App SDK を使用するには、試験的リリース チャネルを使用する必要があります。
  • .NET アプリはビルド 18362 以降をターゲットにする必要があります。TFM を 以降に net6.0-windows10.0.18362 設定し、パッケージ プロジェクトを <TargetPlatformVersion> 18362 以降に設定する必要があります。 詳細については、GitHub に関する既知の問題に関するページを参照してください。

重要

UWP アプリで作業している場合は、「UWP から Windows App SDK に移行する」を参照してください。