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

重要

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

プレビュー チャネルは、次回の安定リリースのプレビューを提供します。 指定されたプレビュー チャネル リリースと次期安定リリースとの間に API の破壊的変更がある場合があります。 プレビュー チャネル リリースには試験版 API は含まれていません。

重要なリンク:

バージョン 1.2 Preview 2 (1.2.0-preview2)

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

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

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

重要

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 のいずれかが必要です。

.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 Widgets Board でローカルでテストできるようになりました。

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

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

このリリースの前提条件は次のとおりです。

  • 開発用コンピューターで有効になっている開発者モード。
  • 開発マシンは、Widgets Board バージョン 521.20060.1205.0 以降を使用して、Windows Insider Program (WIP) の開発チャネルから Windows のバージョンを実行しています。

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

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

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

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

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

DisplayInformation

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

WinUI 3 の問題を修正しました

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

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

重要

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

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

バージョン 1.2 Preview 1 (1.2.0-preview1)

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

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

WinUI 3

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

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

既知の問題

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

通知

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 仕様 を参照してください。

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

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

バージョン 1.1 Preview 3 (1.1.0-preview3)

これは、バージョン 1.1 のプレビュー チャネルの最新リリースです。 これは、すべてのプレビュー チャネル機能をサポートします ( リリース チャネルで使用可能な機能に関するページを参照してください)。

Windows アプリ SDK 1.0 Stable を使用する既存のアプリでは、Nuget パッケージを 1.1.0-preview3 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio でパッケージをインストールおよび管理する」の「パッケージの更新」セクションを参照してください)。 さらに、「更新されたランタイムと MSIX の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必要です" のようなエラーが表示されます。

次のセクションでは、 プレビュー 2 のすべての機能に加えて、このリリースの新機能と更新された機能、制限事項、既知の問題について説明します。

WinUI 3

マイカと背景アクリルは、WinUI 3アプリケーションで利用可能になりました。

これらの資料の詳細については、「Windows 11の資料」を参照してください。 C++ アプリケーションで Mica を適用するためのサンプル コードについては、「 WinUI 3 XAML で SystemBackdropController を使用する」および「WinUI コントロール ギャラリーの一部として GitHub 上 の C# アプリケーションで使用する」を参照してください。

通知

修正された問題:

  • 1.1.0-preview1 および 1.1.0-preview2 では、一部のパッケージ化されていないアプリでは、アプリ アイコンが AppData\LocalMicrosoftWindowsAppSDK に正しくコピーされていません。 このリリースでは、代わりに AppData\Local\Microsoft\WindowsAppSDK にコピーされます。 アイコンが漏洩しないようにするには、1.1.0-preview3 に更新した後、正しくないパスにあるアプリ アイコンを手動で削除する必要があります。
  • ショートカットを使用したアプリ通知のアプリ アイコンとアプリ表示名の取得がサポートされるようになりました。 このアプリ アイコンは、リソース ファイルで指定されたアイコンよりも優先されます。
  • パッケージ化されていないアプリのプッシュ通知のサポートが復元されました (「例外の 制限事項 」を参照)。 アプリがプッシュ通知をサポートしているかどうかを確認するために、PushNotificationManager::IsSupported API を導入しました。

制限事項:

  • 昇格されたパッケージ化されていないアプリの通知はサポートされていません。 PushNotificationManager::IsSupported では、管理者特権モードのチェックは実行されません。 ただし、今後のリリースでこのサポートに取り組んでいます。

MSIX パッケージ作成ツール

拡張機能カテゴリを使用して、新しい機能を追加し、既存の機能を拡張する MSIX を強化しました。

  • windows.appExecutionAlias
  • windows.customDesktopEventLog
  • windows.dataShortcuts
  • windows.fileTypeAssociation
  • windows.fileTypeAssociation.iconHandler
  • windows.folder
  • windows.shortcut

これには、Windows アプリ SDK フレームワーク パッケージをインストールする必要があります。 ランタイムをインストールするWindows アプリ SDKについては、「ダウンロード」を参照してください。

環境マネージャー

開発者がレジストリ API を直接使用せずに環境変数を追加、削除、変更できるようにする API セット。

1.1 Preview 1 からの説明: 環境マネージャーを使用したアプリをアンインストールした場合の環境変数の変更の自動削除は、パッケージ 化されたアプリでのみ使用できます。 さらに、環境変数の変更を元に戻すには、Windows アプリ SDK フレームワーク パッケージのインストールが必要です。ランタイムのWindows アプリ SDKのダウンロードに関するページを参照してください。

その他の既知の制限事項

1.1 Preview 2 からの回帰:

  • 単一プロジェクト MSIX で展開 されない MRT Core API と WinUI アプリを使用する .NET アプリの場合:
    • プロジェクトに既存のアイテムとして追加され、以前は PRIResource と Content ItemGroups に自動的に含まれていた RESW ファイルとイメージ ファイルは、それらの ItemGroups には含まれません。 その結果、これらのリソースは PRI の生成中にインデックスが作成されないため、実行時には使用できません。
      • 回避策: プロジェクト ファイルにリソースを手動で含め、None ItemGroup からリソースを削除します。
      • 別の回避策: 使用可能な場合は、アプリの .NET SDK を 6.0.300 にアップグレードします。 詳細については、「 .NET SDK のバージョン要件 」を参照してください。
  • 単一プロジェクト MSIX で展開 されない .NET アプリの場合:
    • ファイルが Content ItemGroup に 2 回以上追加されると、ビルド エラーが発生します。
      • 回避策: 重複するインクルードを削除するか、プロジェクト ファイルで EnableDefaultContentItems を false に設定します。

両方の回帰は、次の安定したリリースで復元されます。

バージョン 1.1 Preview 2 (1.1.0-preview2)

これは、バージョン 1.1 のプレビュー チャネルの 2 番目のリリースです。 これは、すべてのプレビュー チャネル機能をサポートします ( リリース チャネルで使用可能な機能に関するページを参照してください)。

Windows アプリ SDK 1.0 Stable を使用する既存のアプリでは、Nuget パッケージを 1.1.0-preview2 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio でパッケージをインストールおよび管理する」の「パッケージの更新」セクションを参照してください)。 さらに、「更新されたランタイムと MSIX の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必要です" のようなエラーが表示されます。

次のセクションでは、 プレビュー 1 のすべての機能に加えて、このリリースの新機能と更新された機能、制限事項、既知の問題について説明します。

通知

修正された問題:

  • パッケージ ID が通知を送信していないアプリでは、アイコンがアプリのリソースの一部である場合、通知にそのアプリ アイコンが表示されます。 アプリ リソースにアイコンがない場合は、Windows の既定のアプリ アイコンが使用されます。
  • 実行されていない WinUI 3 アプリを、通知を介してバックグラウンドでアクティブ化できるようになりました。

1.1 Preview 1 からの回帰: パッケージ化されていないアプリのプッシュ通知のサポート。 次のリリースで復元される予定です。

既知の制限事項:

  • PushNotificationManager::IsSupported API を導入して、自己完結型アプリがプッシュ通知をサポートしているかどうかを確認しました。 ただし、この API はまだ意図したとおりに動作していないため、IsSupported API の完全なサポートについては、次のプレビュー リリースに注目してください。
  • 一部のパッケージ化されていないアプリには、AppData\LocalMicrosoftWindowsAppSDK に誤ってコピーされたアプリ アイコンが表示されます。 次のリリースでは、代わりに AppData\Local\Microsoft\WindowsAppSDK にコピーされます。 アイコンのリークを回避するために、開発者は、次のリリースにアップグレードした後、正しくないパスにあるアプリ アイコンを手動で削除する必要があります。
  • ショートカットによる通知のアプリ アイコンとアプリ表示名の取得はサポートされていません。 ただし、今後のリリースではサポートに取り組んでいます。

デプロイ

新機能:

既知の制限事項:

  • 自己完結型デプロイは、Windows 10、1903 以降でのみサポートされます。

ウィンドウ化

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

新機能:

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

既知の制限事項:

  • 背の高いタイトルバーのサポートは、Windows 11でのみ使用できます。 他のカスタム タイトルバー API と共に、このレベルを下げるために取り組んでいます。

WinUI 3

修正された問題:

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

パフォーマンス

C# アプリケーションには、いくつかのパフォーマンスの向上があります。 詳細については、 C#/WinRT 1.6.1 リリース ノートを参照してください。

バージョン 1.1 Preview 1 (1.1.0-preview1)

これは、バージョン 1.1 のプレビュー チャネルの最初のリリースです。 すべてのプレビュー チャネル機能がサポートされています ( リリース チャネルで使用可能な機能に関するページを参照してください)。

Windows アプリ SDK 1.0 Stable を使用する既存のアプリでは、Nuget パッケージを 1.1.0-preview1 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio でパッケージをインストールして管理する」の「パッケージの更新」セクションを参照してください)。 さらに、「更新されたランタイムと MSIX のWindows アプリ SDKのダウンロード」を参照してください。

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

WinUI 3

既知の問題: ドラッグ アンド ドロップが有効になっている場合、ユーザーは要素を削除できません。

管理者特権 (管理者) のサポート

Windows アプリ SDK 1.1 Preview 1 を使用すると、アプリ (WinUI 3 を含む) を昇格された特権で実行できます。

重要な制限事項

  • 現在、Windows 11でのみ使用できます。 ただし、このサポートを後のリリースでダウンレベルにすることを評価しています。

既知の問題

  • WinUI 3 アプリは、ドラッグ アンド ドロップ操作中に要素をドラッグするとクラッシュします。

自己完結型の展開

Windows アプリ SDK 1.1 では、自己完結型デプロイのサポートが導入されます。 デプロイの概要では、フレームワークに依存するデプロイと自己完結型のデプロイの違い、および使用を開始する方法について詳しく説明します。

既知の問題:

  • パッケージ化された C++ アプリでは、VCLibs へのフレームワーク参照を削除する自己完結 .targets 型ファイルのバグを回避するために、以下をプロジェクト ファイルの下部に追加する必要があります。

    <PropertyGroup>
        <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences>
    </PropertyGroup>
    
    <Target Name="_RemoveFrameworkReferences"
        BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest">
        <ItemGroup>
            <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" />
        </ItemGroup>
    </Target>
    
  • 1903 以降のWindows 10でのみサポートされます。

通知

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

新機能:

  • パッケージ化されたアプリとパッケージ化されていないアプリのアプリ通知のサポート。 GitHub の完全な詳細
    • 開発者は、アプリ通知 (トースト通知とも呼ばれます) をローカルまたは独自のクラウド サービスから送信できます。
  • パッケージ化されたアプリとパッケージ化されていないアプリのプッシュ通知のサポート。 GitHub の完全な詳細
    • 開発者は、独自のクラウド サービスから生の通知またはアプリ通知を送信できます。

制限事項:

  • 自己完結型として公開されたアプリでは、プッシュ通知がサポートされていない可能性があります。 IsSupported API の次のプレビュー リリースでは、プッシュ通知のサポートを確認してください。
  • アプリ通知を送信するパッケージ化されていないアプリは、コンソール アプリケーションでない限り、アプリ通知にアプリ アイコンは表示されません。 パッケージ化されていないコンソール アプリは、 ToastNotificationsDemoApp サンプルに示されているパターンに従う必要があります。
  • プッシュ通知をサポートするにはランタイムWindows アプリ SDKインストールする必要があります。インストーラーのWindows アプリ SDKのダウンロードに関するページを参照してください。
  • 実行されていない WinUI 3 アプリは、通知を介してバックグラウンドでアクティブ化することはできません。 しかし、今後のリリースでサポートに取り組んでいます。

環境マネージャー

開発者がレジストリ API を直接使用せずに環境変数を追加、削除、変更できるようにする API セット。

新機能

  • 環境マネージャーを使用したアプリをアンインストールすると、環境変数の変更が自動的に削除されます。

制限事項

  • 現在、C# アプリでは使用できません。 ただし、この機能を C# アプリに導入することを後のリリースで評価しています。

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

  • 1.1.0 Preview 1 で C# を使用している場合は、少なくとも .NET SDK 6.0.201、6.0.103、5.0.212、または 5.0.406 のいずれかの .NET SDK バージョンを使用する必要があります。 .NET SDK をアップグレードするには、Visual Studio の最新バージョンに更新するか、 .NET のダウンロードに関するページを参照してください。

バージョン 1.0 プレビュー 3 (1.0.0-preview3)

プレビュー 3 は、Windows App SDK のバージョン1.0 のプレビュー チャネルの最新リリースです。 プレビュー 3 では、すべてのプレビュー チャネル機能がサポートされています。

1.0 Preview 3 Visual Studio 拡張機能 (VSIX) をダウンロードする

注意

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

下のテーブルから、1.0 プレビュー 3 リリースの Visual Studio 拡張機能 (VSIX) をダウンロードできます。 すべてのバージョンについては、「Windows App SDK 用のダウンロード」を参照してください。 まだ行っていない場合は、「Windows アプリ SDKのツールをインストールする」の手順に従って開発環境を構成することから始めます。

次の拡張機能は、お使いの Visual Studio のプログラミング言語とバージョンに合わせて調整されています。

1.0 プレビュー 3 のダウンロード 説明
C# Visual Studio 2019 拡張機能 Windows App SDK Visual Studio 2019 拡張機能を使用して C# アプリをビルドします。
C++ Visual Studio 2019 拡張機能 Windows App SDK Visual Studio 2019 拡張機能を使用して C++ アプリをビルドします。
C# Visual Studio 2022 拡張機能 Windows App SDK Visual Studio 2022 拡張機能を使用して C# アプリをビルドします。
C++ Visual Studio 2022 拡張機能 Windows App SDK Visual Studio 2022 拡張機能を使用して C++ アプリをビルドします。
.exe インストーラーと MSIX パッケージ .exe インストーラーと MSIX パッケージを使用して、アプリに Windows App SDK をデプロイします。

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

WinUI 3

MSIX パッケージを使用せずに、WinUI 3 アプリのデプロイをサポートするようになりました。 パッケージ化されていない展開をサポートするように WinUI 3 アプリケーションを構成するには、「初めての WinUI 3 プロジェクトを作成する」を参照してください。

重要な制限事項

  • 非パッケージ WinUI 3 アプリケーションは、Windows バージョン 1909 以降でのみサポートされています
  • 非パッケージ WinUI 3 アプリケーションは、x86 と x64 でサポートされています。arm64 サポートが次の安定リリースで追加されます。
  • 非パッケージ アプリには、Visual Studio 2019 または Visual Studio 2022 のための単一プロジェクト MSIX パッケージ ツールが必要です。
  • 非パッケージ アプリでは、.NET 3.5 をインストールするように求めるメッセージが表示されることがあります。この場合、無視してかまいません。
  • 一部の API は、非パッケージ アプリでは現在サポートされていません。 次の安定リリースでこれを修正することを目指しています。 いくつか例を示します。
  • ListView、CalendarView、GridView の各コントロールは不適切なスタイルを使用しているため、次の安定リリースでこれを修正することを目指しています。

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

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

  • 非パッケージ アプリは、Windows 10 バージョン 1809 ではサポートされていません。 安定チャネルの次のリリースでこれを修正することを目指しています。

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

  • このリリースでは、C# と C++ のために [空のアプリ、パッケージ (WinUI 3 in Desktop)] プロジェクト テンプレートが導入されています。 これらのテンプレートを使用すると、個別のパッケージ プロジェクトを使用せずに、アプリを MSIX パッケージに組み込むことができます (「単一プロジェクト MSIX を使用してアプリをパッケージ化する」を参照してください)。 このリリースでは、これらのテンプレートにいくつかの既知の問題があります。

    • Visual Studio を再起動するまで、[公開] メニュー項目が表示されない[空のアプリ、パッケージ (WinUI 3 in Desktop)] プロジェクト テンプレートを使用して Visual Studio 2019 と Visual Studio 2022 の両方で新しいアプリを作成するときには、Visual Studio を閉じてもう一度開くまで、プロジェクトを公開するコマンドがメニューに表示されません。

    • 単一プロジェクト MSIX パッケージを使用して、C++ 静的/動的ライブラリ プロジェクト参照を C++ アプリに追加するときのエラー。 Visual Studio で、プロジェクトの種類に互換性がないため、プロジェクトを参照として追加できないというエラーが表示されます。

    • クラス ライブラリ プロジェクトでカスタム ユーザー コントロールを参照するときのエラー。 指定されたパスが見つからないというエラーが発生すると、アプリケーションがクラッシュします。

    • Visual Studio 2019 のための C# または C++ テンプレート。 プロジェクトをビルドしようとすると、"The project doesn't know how to run the profile project name" というエラーが発生します。 この問題を解決するには、単一プロジェクト MSIX パッケージ ツール拡張機能をインストールします。

    • Visual Studio 2019 と Visual Studio 2022 のための C# テンプレート。 Visual Studio で、[デバッグの開始] または [デバッグなしで開始] を選択したときに、アプリがデプロイされて実行されない (そして Visual Studio からのフィードバックがない) 場合は、ソリューション エクスプローラーでプロジェクト ノードをクリックして選択し、再試行します。

    • Visual Studio 2019 と Visual Studio 2022 のための C# テンプレート。 開発用コンピューター上でプロジェクトを実行またはデバッグしようとすると、次のようなエラーが発生します。"The project needs to be deployed before we can debug. Please enable Deploy in the Configuration Manager." この問題を解決するには、構成マネージャーでプロジェクトのデプロイを有効にします。 詳細な手順については、 最初の WinUI 3 プロジェクトの作成に関するページを参照してください。

    • プレビュー 4 までの Visual Studio 2022 バージョン17.0 リリースの C++ テンプレート。 プロジェクトを初めて実行しようとすると、次のようなエラーが発生します。"There were deployment errors"。 この問題を解決するには、プロジェクトをもう一度実行またはデプロイします。 この問題は、Visual Studio 2022 バージョン 17.0 プレビュー 7 で修正される予定です。

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

  • 1.0 Preview 3 を使用する C# プロジェクトでは、.NET SDK: .NET 6 SDK 以降を使用する必要があります (「 .NET.NET 5 のダウンロードは 2022 年 5 月 10 日にサポート終了に達する」を参照してください)。

  • 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); です。

1.0 プレビュー 1 と プレビュー 2 に影響する重要な問題

Windows App SDK のバージョン 1.0 プレビュー 1 とプレビュー 2 には、パッケージ アプリがアンインストールされたときにそのアプリによって行われた環境変数の変更をすべてクリーンアップするためのメカニズムが含まれています。 この機能は試験的な状態であり、最初のリリースには、システム PATH 環境変数を破損する可能性がある既知のバグが含まれています。

プレビュー 1 とプレビュー 2 では、拡張文字 % を含むすべての PATH 環境変数が破損されます。 これは、パッケージ アプリがアンインストールされるたびに、そのアプリが Windows App SDK を使用しているかどうかに関係なく発生します。

PATH 環境変数の破損の問題についても参照してください。

詳細

システム PATH エントリは、Windows レジストリの次のキーの Path 値に格納されます。

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

レジストリ エディター (regedit.exe) を起動する場合は、上のパスをコピーし、(メニュー バーのすぐ下にある) 階層リンク バーに貼り付け、Enter キーを押してキーを検索することができます。

そのキーの Path 値は REG_EXPAND_SZ 型である "必要があります" が、バグによってそれが REG_SZ に変更されます。 また、変数拡張文字 % が含まれている場合は、システム PATH 環境変数が使用できなくなります。

影響を受けるリリース

対応策

コンピューターを良好な状態に戻すには、次の手順を実行します。

  1. レジストリ内の PATH が破損しているかどうかを確認し、該当する場合は、下のスクリプトを実行してリセットします。

    次の Windows PowerShell スクリプトで手順 1 を実行できます (PowerShell Core では機能しません)。 昇格して実行します。

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # If the PATH in the Registry has been set to REG_SZ, then delete
    # it, and recreate it as REG_EXPAND_SZ.
    
    $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment'
    $Environment=Get-Item $EnvPath
    $PathKind = $Environment.GetValueKind('Path')
    
    if ($PathKind -ne 'ExpandString') {
      $Path = $Environment.GetValue('Path')
      Remove-ItemProperty $EnvPath -Name Path
      New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path
    }
    
  2. Windows App SDK 1.0 プレビュー 1 またはプレビュー 2 を使用するすべてのアプリをアンインストールします (以下のスクリプトを参照してください)。

  3. バグが含まれているパッケージを含めて、Windows App SDK 1.0 プレビュー 1/プレビュー 2 パッケージをアンインストールします (以下のスクリプトを参照してください)。

    次の Windows PowerShell スクリプトで手順 2 と 3 を実行できます (PowerShell Core では機能しません)。 昇格して実行します。

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it.
    
    $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*"
    Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage
    Get-AppxPackage $winappsdk | Remove-AppxPackage
    

Windows App SDK 1.0 プレビュー 3 での修正

PATH 環境変数が破損する原因となっている機能は、今後の Windows App SDK 1.0 プレビュー 3 リリースで削除される予定です。 後日、すべてのバグが修正され、全面的にテストされた後で、再導入される可能性があります。

バージョン 1.0 プレビュー 3 を使うことをお勧めします。

バージョン 1.0 プレビュー 2 (1.0.0-preview2)

重要

バージョン 1.0 プレビュー 1 とプレビュー 2 には重大なバグが含まれています。 これらのいずれかのプレビューを既にインストールしている場合は、問題の解決方法をご覧ください。 代わりに、バージョン 1.0 プレビュー 3 を使うことをお勧めします。

これは、バージョン 1.0 のプレビュー チャネルの最新リリースです。 すべてのプレビュー チャネル機能がサポートされています。

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

WinUI 3

新しい更新:

  • WinUI 2.6 からの最新の Windows スタイルを反映するようにコントロールが更新されました。
  • 単一プロジェクト MSIX がサポートされています。
  • WinUI 3 パッケージでビルド 17763 以降をターゲットにできるようになりました。 詳細については、問題 #921 を参照してください。
  • アプリ内ツール バーがサポートされています。 ただし、アプリ内ツール バーと既存のホット リロード/ライブ ビジュアル ツリーのサポートには、10 月後半に提供される予定の Visual Studio 17.0 プレビュー 5 リリースが必要です。

バグ修正: WebView2Runtime テキストがローカライズされました。

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

ウィンドウ化

このリリースでは、Appwindow クラスへの更新が導入されています。 このリリースでは、主要な新機能は追加されていませんが、メソッド名とプロパティが変更され、いくつかの戻り値が削除されました。 更新の詳細については、ドキュメントとサンプルを参照してください。 1.0 試験版または 1.0 プレビュー 1 のリリースで AppWindow を操作した場合は、コードにいくつかの変更を加える必要があります。

新しい更新:

  • AppWindowConfiguration クラスが削除されました。 このクラスのプロパティは、AppWindow 自体、または Presenter クラスで使用できるようになりました。
  • この空間の WINRT API メソッドのほとんどの bool 戻り値が削除され、void になりました。これらのメソッドは常に成功するためです。
  • GetWindowIdFromWindowGetWindowFromWindowId では、C# importdll の呼び出しが不要になりました。 Microsoftで使用できる .NET ラッパー メソッドを使用します。Ui。代わりに Win32Interop クラス。

重要な制限事項:

  • 現在、Windows App SDK には、UI フレームワーク コンテンツを AppWindow にアタッチするためのメソッドが用意されていません。HWND 相互運用アクセス メソッドを使用するように制限されています。
  • ウィンドウ タイトル バーのカスタマイズは、Windows 11 でのみ機能します。 タイトル バー カスタマイズ機能のサポートを確認するには、IsCustomizationSupported メソッドを使用します。 この機能を下位レベルでも導入する予定です。

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

入力

新しい更新:

  • 高精度タッチパッド入力のサポートが改善されました。

重要な制限事項:

  • すべての PointerPoint 静的ファクトリ関数が削除されました。GetCurrentPointGetCurrentPointTransformedGetIntermediatePointsGetIntermediatePointsTransformed
  • Windows App SDK では、ポインター ID を使用した PointerPoint オブジェクトの取得はサポートされていません。 代わりに、PointerPoint メンバー関数 GetTransformedPoint を使用して、既存の PointerPoint オブジェクトの変換されたバージョンを取得できます。 中間点として、PointerEventArgs メンバー関数 GetIntermediatePointsGetTransformedIntermediatePoints を使用できます。 詳細については、ドキュメントを参照してください。

MRT Core

新しい更新:

  • アプリ開発者は、.NET プロジェクトの PRI ファイルでインデックスが作成されないように、イメージ ファイルまたは RESW ファイルを選択して除外できるようになりました。 詳細については、問題 980 を参照してください。

重要な制限事項:

  • .NET プロジェクトでは、アプリが既にビルドされている場合、コピーしてプロジェクト フォルダーに貼り付けたリソース ファイルには、F5 でインデックスが作成されません。 回避策として、アプリをリビルドします。 詳細については、問題 1503 を参照してください。
  • .NET プロジェクトでは、ビルド アクションを手動で設定しないと、外部フォルダーから追加された既存のリソース ファイルには、インデックスが作成されません。 この問題を回避するには、Visual Studio のビルド アクションを設定します (イメージ ファイルの場合は [コンテンツ]、RESW ファイルの場合は [PRIResource])。 詳細については、問題 1504 を参照してください。

非パッケージ アプリのデプロイ

新機能:

  • Windows アプリ SDK 1.0 Preview 2 では、ブートストラップ API の .NET ラッパーが導入されています (「外部の場所またはパッケージ化されていないアプリにWindows アプリ SDKランタイムを使用する」を参照してください)。 ブートストラップ API はネイティブ C/C++ 関数のセットです。非パッケージ アプリは、実行時に Windows App SDK フレームワーク パッケージに対する依存関係を動的に取得するために、この API を使用する必要があります。 .NET ラッパーを使用すると、Windows フォームや WPF アプリなどの .NET アプリからブートストラップ API を簡単に呼び出すことができます。 ブートストラップ API 用の .NET ラッパーが Microsoft.WindowsAppRuntime.Bootstrap.Net.dll アセンブリ内に用意されています。これはアプリ プロジェクトのローカルにあります。 .NET ラッパーの詳細については、.NET ラッパー ライブラリを参照してください。
  • パッケージ アプリは、デプロイ API を使用して、コンピューターにインストールされているメインとシングルトンの MSIX パッケージを取得できるようになりました。 メインとシングルトンのパッケージはアプリと共にインストールされるフレームワーク パッケージの一部ですが、Windows アプリケーション モデルには制限があるため、それらのパッケージをインストールするためには、パッケージ アプリでこの追加の手順を実行する必要があります。 デプロイ API のしくみの詳細については、「フレームワークに依存するパッケージ 化されたアプリWindows アプリ SDKデプロイ ガイド」を参照してください。

重要な制限事項:

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

アプリのライフサイクル

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

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

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

重要な考慮事項:

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

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

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

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

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

既知の問題:

動詞ハンドラーのコマンド ライン テンプレートを設定するときに、ファイルの種類の関連付けによって %1 が %251 になるように誤ってエンコードされるため、非パッケージ Win32 アプリがクラッシュします。 部分的な回避策として、代わりにレジストリ値が %1 になるように手動で編集できます。 ターゲット ファイルのパスにスペースが含まれている場合は、それでも失敗します。そのシナリオに対する回避策はありません。

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

  • バージョン 1.0 プレビュー 1 とプレビュー 2 には重大なバグが含まれています。 これらのいずれかのプレビューを既にインストールしている場合は、問題の解決方法をご覧ください。 代わりに、バージョン 1.0 プレビュー 3 を使うことをお勧めします。

  • このリリースでは、C# と C++ のプロジェクトのために [空のアプリ、パッケージ (WinUI 3 in Desktop)] テンプレートが導入されています。 これらのテンプレートを使用すると、個別のパッケージ プロジェクトを使用せずに、アプリを MSIX パッケージに組み込むことができます。 このリリースでは、これらのテンプレートにいくつかの既知の問題があります。

    • Visual Studio 2019 のための C# テンプレート。 プロジェクトをビルドしようとすると、"The project doesn't know how to run the profile project name" というエラーが発生します。 この問題を解決するには、単一プロジェクト MSIX パッケージ ツール拡張機能をインストールします。

    • Visual Studio 2019 と Visual Studio 2022 のための C# テンプレート。 開発用コンピューター上でプロジェクトを実行またはデバッグしようとすると、次のようなエラーが発生します。"The project needs to be deployed before we can debug. Please enable Deploy in the Configuration Manager." この問題を解決するには、構成マネージャーでプロジェクトのデプロイを有効にします。 詳細な手順については、 最初の WinUI 3 プロジェクトの作成に関するページを参照してください。

    • Visual Studio 2019 と Visual Studio 2022 のための C++ テンプレート。 このリリースでは、これらのプロジェクトは、UWP アプリから呼び出すことができる Win32 API のサブセットの呼び出しに制限されています。 [Blank App, Packaged with WAP (WinUI 3 in Desktop) (空のアプリ、WAP を使用したパッケージ (デスクトップの WinUI 3))] テンプレートは、この問題の影響を受けません。

    • プレビュー 4 までの Visual Studio 2022 バージョン17.0 リリースの C++ テンプレート。 プロジェクトを初めて実行しようとすると、次のようなエラーが発生します。"There were deployment errors"。 この問題を解決するには、プロジェクトをもう一度実行またはデプロイします。 この問題は、Visual Studio 2022 バージョン 17.0 Preview 5 で修正される予定です。

  • プッシュ通知 API (Microsoft.Windows.PushNotifications 名前空間) が 1.0 プレビュー 2 リリースに誤って含まれています。 これはまだ試験的な機能であり、使用するには、代わりに 1.0 試験版リリースをインストールする必要があります。 この機能は、今後の 1.0 安定リリースから削除される予定です。

  • アプリのライフサイクル API (Microsoft.Windows.AppLifecycle 名前空間) の試験的な属性が 1.0 プレビュー 2 リリースに誤って含まれています。 試験的な属性は、次のリリースでこの API から削除される予定です。

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

  • 1.0 Preview 2 を使用する C# プロジェクトでは、.NET SDK. .NET 6 SDK 以降を使用する必要があります (「 .NET.NET 5 のダウンロードは 2022 年 5 月 10 日にサポート終了になります)」を参照してください)。

  • 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); です。

バージョン 1.0 プレビュー 1 (1.0.0-preview1)

重要

バージョン 1.0 プレビュー 1 とプレビュー 2 には重大なバグが含まれています。 これらのいずれかのプレビューを既にインストールしている場合は、問題の解決方法をご覧ください。 代わりに、バージョン 1.0 プレビュー 3 を使うことをお勧めします。

これは、バージョン 1.0 のプレビュー チャネルの最初のリリースです。 すべてのプレビュー チャネル機能がサポートされています。

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

WinUI 3

WinUI 3 のこのリリースは、バグ修正を含む 1.0 安定版に向けてビルドすることに焦点を合わせています。

  • 新機能: プレビュー 1 に新機能はありません。
  • 修正済みの問題: このリリースで解決されたすべての問題の一覧については、GitHub リポジトリを参照してください。

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

ウィンドウ化

このリリースでは、試験版 1で導入されたウィンドウ化 API がプレビュー状態になります。 バグ修正、安定性、API シグネチャに対する調整に焦点を合わせているため、このリリースには主要な新機能の領域がありません。 注目すべき変更内容と追加内容を以下に示します。

新機能:

  • DisplayAreaWatcher がウィンドウ化 API に追加されました。 これにより、開発者は、表示トポロジでの変更を観察し、システムで現在定義されている DisplayArea を列挙することができます。
  • AppWindow では、SetIcon メソッドを使用したウィンドウ アイコンの設定がサポートされるようになりました。また、AppWindowTitleBar では、IconShowOptions プロパティを使用して、ウィンドウ アイコンをシステム メニューと共に表示するか非表示にするかを選択できるようになりました。

重要な制限事項:

  • このリリースの AppWindow は現在、Win32 アプリでのみ使用できます (パッケージと非パッケージの両方)。
  • 現在、Windows App SDK には、UI フレームワーク コンテンツを AppWindow にアタッチするためのメソッドが用意されていません。HWND 相互運用アクセス メソッドを使用するように制限されています。
  • ウィンドウ タイトル バーのカスタマイズは、Windows 11 でのみ機能します。 タイトル バー カスタマイズ機能のサポートを確認するには、IsCustomizationSupported メソッドを使用します。 この機能を下位レベルでも導入する予定です。

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

入力

このリリースでは、入力 API にいくつかの新機能が導入されています。 注目すべき変更内容と追加内容を以下に示します。

新機能と機能の更新:

  • PointerPredictor は、入力の待機時間が重要なアプリケーション (手書き入力アプリケーションなど) に、今後の入力ポイントの位置を 15 ミリ秒までの精度で予測する機能を提供して、待機時間の改善とスムーズなアニメーションを実現します。
  • PenDeviceInterop を使用すると、FromPointerPoint メソッドを使用して、Windows.Devices.Input.PenDevice への参照を取得できます。
  • InputCursor は、CoreCursor に存在する "カスタム" 型を削除し、CoreCursor オブジェクトを個別のオブジェクトに分割することで、事前に設定されたシステム カーソルの種類とカスタム カーソルの種類を明確に区別します。
  • InputCursor API への更新。
  • GestureRecognizer が試験段階から Microsoft.UI.Input に移動されました。
  • PointerPoint が試験段階から Microsoft.UI.Input に移動されました。
  • WinUI 3 ドラッグ アンド ドロップで完全にサポートされているマウス、タッチ、およびペン入力。

重要な制限事項:

  • このリリースの入力 API には、Windows バージョン 1809 に関する既知の問題があります。
  • MRT Core は、InputCursor のサブタイプではまだサポートされていません。
  • プラットフォーム SDK API Windows.UI.Core.CoreDragOperation を直接使用すると、WinUI 3 アプリケーションでは機能しません。
  • PointerPoint プロパティ RawPosition と ContactRectRaw は、予測値ではない値 (OS 内の通常の値と同じ) を参照していたため、削除されました。 代わりに PositionContactRect を使用してください。 ポインター予測は、Microsoft.UI.Input.PointerPredictor API オブジェクトで処理されるようになりました。

MRT Core

バージョン 1.0 プレビュー 1 以降、MRT Core API は、Microsoft.ApplicationModel.Resources 名前空間から Microsoft.Windows.ApplicationModel.Resources 名前空間に移動されました。

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

  • バージョン 1.0 プレビュー 1 とプレビュー 2 には重大なバグが含まれています。 これらのいずれかのプレビューを既にインストールしている場合は、問題の解決方法をご覧ください。 代わりに、バージョン 1.0 プレビュー 3 を使うことをお勧めします。

  • C++ の [Blank App, Packaged with WAP (WinUI 3 in Desktop) (空のアプリ、WAP を使用したパッケージ (デスクトップの WinUI 3))] プロジェクト テンプレートを使用して作成されたプロジェクトでは、既定で次のビルド エラーが発生します: fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory。 この問題を解決するには、pch.h ファイルから次のコード行を削除します。 この問題は次のリリースで修正される予定です。

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • 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); です。
  • Any CPU ビルド構成のサポートがない: Windows App SDK はネイティブ コードで記述されているため、Any CPU ビルド構成をサポートしていません。 Visual Studio の WinUI 3 テンプレートでは、アーキテクチャ固有のビルドのみが許可されます。 Any CPU をサポートする既存の .NET アプリケーションまたはコンポーネントに Windows App SDK を追加した場合、目的のアーキテクチャ (x86x64arm64) を指定する必要があります。

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

  • 1.0 Preview 1 を使用する C# プロジェクトでは、次の .NET SDK を使用する必要があります。 .NET 6 SDK 以降 ( 「.NET と .NET 5 のダウンロード は 2022 年 5 月 10 日にサポート終了になります)」を参照してください)。

  • Windows 10 バージョン 1809 ではサポートされない非パッケージ アプリ: これは、次のリリースで解決されます。