安定チャネルは、運用環境のアプリで使用するためにサポートされている Windows アプリ SDK のリリースを提供します。 Windows App SDK の安定したリリースを使用するアプリは、Microsoft Store にも公開できます。
重要なリンク:
- 既存のアプリを古いバージョンの Windows App SDK から新しいバージョンにアップグレードする場合は、「既存のプロジェクトを Windows App SDK の最新リリースに更新する」を参照してください。
最新の安定チャネル リリース:
Windows App SDK 用のダウンロード
注
Windows アプリ SDK Visual Studio 拡張機能(VSIX)は、現在は個別のダウンロードとして配布されていません。 それらは、Visual Studio内のVisual Studio Marketplaceで利用可能です。
バージョン 1.2.5 (1.2.230313.1)
これは、1.2 リリースの重要なバグ修正を含む Windows App SDK のサービス リリースです。
- コンポジションのシャットダウン中にアプリがクラッシュする問題を修正しました。
- 画面がオフの場合でも、アプリでアニメーションの実行が続行される問題を修正しました。
- マウスとキーボードの入力が同時に発生したときに、WebView2 でマウスとタッチの入力が失敗する問題を修正しました。 詳細については、GitHub の問題 #3266 を参照してください。
バージョン 1.2.4 (1.2.230217.4)
これは、1.2 リリースの重要なバグ修正を含む Windows App SDK のサービス リリースです。
- 自己完結型アプリで UAC 設定を設定できない問題を修正しました。 詳細については、GitHub の問題 #3376 を参照してください。
-
PushNotificationChannel::ExpirationTime
でプッシュ通知が不正確な有効期限を返す問題を修正しました。 詳細については、GitHub の問題 #3300 を参照してください。 - パラメーターとして double を x:Bind 関数に渡すと、負の数が "無効" と見なされる問題を修正しました。
- WinUI VSIX を更新するためのいくつかの修正。 これらの更新プログラムには、app.manifest でのプロジェクト テンプレートの dipAwareness の簡略化、UWP テンプレートの削除、ローカライズされたリソース ファイルの更新、ストアの申請のブロックを解除するための電話 ID の追加、著作権に関する通知とライセンスの削除が含まれていました。 詳細については、GitHub の問題 #5659、#3205、#3323、#3322、#3143 を参照してください。
バージョン 1.2.3 (1.2.230118.102)
これは、1.2 リリースの重要なバグ修正を含む Windows App SDK のサービス リリースです。
- 複数のウィンドウが閉じられたときに WinUI 3 アプリがクラッシュする問題を修正しました。
- ThreadPoolTimer インターフェイスへの 2 つ以上の参照が呼び出されると、アプリが閉じるときにクラッシュする問題を修正しました。 詳細については、GitHub の問題 #7260 と #7239 を参照してください。
- 単一プロジェクトのすべての MSIX アプリが完全信頼として実行される問題を修正しました。 詳細については、GitHub の問題 #7766 を参照してください。
バージョン 1.2.2 (1.2.221209.1)
これは、1.2 リリースの重要なバグ修正を含む Windows App SDK のサービス リリースです。
- ストア パッケージとサイドロード パッケージ (インストーラー、NuGet、ブートストラップなど) が既にインストールされている場合にインストールに失敗する原因となった問題を修正しました。 詳細については、GitHub の問題 #3168 を参照してください。
- タッチパッドを使用してスクロールすると、弾力性効果とアニメーションカーブが見つからない問題を修正しました。 詳細については、GitHub の問題 #7874 を参照してください。
- メモリ リークの原因となっている ListView の問題を修正しました。
- マウスポインターを置いた後、Button テンプレートが Foreground プロパティを尊重しない問題を修正しました。 詳細については、GitHub の問題 #7208 を参照してください。
- MediaElement に MediaPlaybackItem がない場合に不要な例外が発生する問題を修正しました。
- コンテンツ切り替え時に MediaPlayerElement に白いフレームが表示される問題を修正しました。
- App.UnhandledException が他のスレッドからの例外をキャッチしない原因となる追加の問題を修正しました。 詳細については、GitHub の問題 #1259 と #5221 を参照してください。
バージョン 1.2.1 (1.2.221116.1)
これは、1.2 リリースの重要なバグ修正を含む Windows App SDK のサービス リリースです。
WebView2 または TextBox コントロールを追加するときに、C++ WinUI 3 アプリの起動時にクラッシュする問題を修正しました。 詳細については、GitHub の問題 #7911 & #3117 を参照してください。
バージョン 1.2 の新機能と更新された機能と既知の問題
以降のセクションでは、1.2 の新機能と更新された機能と既知の問題について説明します。
注
Visual Studio 2019 および .NET 5 は、C# アプリのビルドでサポートされなくなりました (C# WinRT 2.0への Windows App SDK 1.2 の移行
.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 App SDK では、サード パーティの開発者として、パッケージ化された Win32 アプリのウィジェットを作成し、Windows 11 ウィジェット ボードでローカルでテストできるようになりました。
ウィジェットの詳細については、「ウィジェットの概要」
アプリのウィジェットの開発を開始するには、
このリリースの前提条件は次のとおりです。
- 開発用コンピューターで有効になっている開発者モード。
- 開発マシンは、ウィジェット ボード バージョン 521.20060.1205.0 以降で 25217 以上の Windows Insider Preview (WIP) の開発チャネルから Windows のバージョンを実行しています。
ウィジェットを開発するときの既知の制限事項:
- サードパーティのウィジェットは、このプレビュー リリースの WIP に登録されているデバイスでのみローカルでテストできます。
- ウィジェットは、パッケージ化された Win32 アプリに対してのみ作成できます。 プログレッシブ Web アプリ (PWA) のウィジェットは、 Microsoft Edge 108 の一部としてサポートされる予定です。
ディスプレイ情報
Windows デスクトップ アプリでは、WinAppSDK の DisplayInformation クラスを使用して、ハイ ダイナミック レンジ (HDR) と 自動カラー管理 (ACM) をサポートできるようになりました。 DisplayInformation クラスを使用すると、アプリケーション ビューの表示関連情報を監視できます。 これには、ビューが存在するディスプレイに影響を与えるアプリケーション ビューの変更と、アプリケーション ビューに影響を与える可能性があるディスプレイの変更をクライアントが監視できるようにするイベントが含まれます。
WinUI 3
WinUI 3 アプリは、
WinUI 3 は、WinUI 2.8 の最新のコントロール、スタイル、および動作で更新されました。 これらの更新プログラムには、 InfoBadge コントロールの追加、アクセシビリティとハイ コントラスト モードの改善、コントロール間のバグ修正が含まれます。 詳細については、
修正された問題:
- DesktopAcrylicController を使用したアクリル背景素材が、Windows 10 アプリでサポートされるようになりました。 詳細については、GitHub の問題 7112 を参照してください。
- App.UnhandledException のルーティングが失敗する原因となったさまざまな問題を修正しました。 詳細については、GitHub の問題 5221 を参照してください。 残りの問題については、次の GitHub の問題で回避策が文書化されており、今後の 1.2 リリースで解決される予定です。
- ListView スタイルが WinAppSDK 1.1 から退行し変更される問題を修正しました。 詳細については、GitHub の問題 7666 を参照してください。
- アプリが非アクティブのときに、誤った Mica フォールバックの背景色が表示される問題を修正しました。 詳細については、GitHub の問題 7801 を参照してください。
既知の制限事項:
- 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 デバイスでの開発を開始するには、Arm の Windows
通知
AppNotificationBuilder は、アプリ 通知を作成および定義するための XML ペイロードの代わりに導入されました。
使用方法については、GitHub の AppNotificationBuilder 仕様 を参照してください。
ローカル アプリ通知を送受信するデスクトップ Windows アプリケーションを作成する方法の例については、「 クイック スタート: Windows App SDK のアプリ通知」も参照してください。
破壊的変更:
プッシュ通知の場合、チャネル要求呼び出しを行うときは、アプリで Azure アプリ ID ではなく Azure オブジェクト ID を使用する必要があります。 Azure オブジェクト ID の検索の詳細については、「 クイック スタート: Windows App SDK のプッシュ通知 」を参照してください。
修正された問題:
PushNotificationManager.IsSupported は、昇格モードのチェックを実行します。 アプリが昇格されている場合、false
が返されます。
既知の制限事項 (通知):
-
AppNotificationScenario では、
Urgent
は Windows ビルド 19041 以降でのみサポートされます。 AppNotificationBuilder.IsUrgentScenarioSupported を使用して、この機能が実行時に使用可能かどうかを確認できます。 -
AppNotificationButton では、
hint-toolTip
とhint-buttonStyle
はビルド 19041 以降でのみサポートされます。 IsButtonStyleSupported と IsToolTipSupported を使用して、実行時に機能が使用可能かどうかを確認できます。 - MediaPlayerElement では、パッケージ化されていないアプリの XAML マークアップで使用する場合、ソース プロパティを ms-appx または ms-resource URI で設定することはできません。 別の方法として、ファイル URI を使用してソースを設定するか、コードから設定します。
ウィンドウ化
完全なタイトル バーのカスタマイズは、Windows 10 バージョン 1809 以降 で AppWindowTitleBar クラスを通じて使用できるようになりました。
AppWindowTitleBar.ExtendsContentIntoTitleBar をtrue
に設定してコンテンツをタイトル バー領域に拡張し、SetDragRectangles を設定してドラッグ領域を定義できます (その他のカスタマイズ オプションに加えて)。
AppWindowTitleBar.IsCustomizationSupported プロパティを使用して AppWindowTitleBar API を呼び出すことができるかどうかを確認した場合、サポートされている Windows App SDK Windows 10 バージョン (1809 以降) でtrue
が返されるようになりました。
既知の制限事項 (ウィンドウ化):
Windows 10 では、基本的なタイトル バーのカスタマイズはサポートされていません。 これには、true
に設定する必要があります。それ以外の場合は、自動的に無視されます。
アクセス制御
パッケージ化されたプロセスと一般的な Win32 API 間の名前付きオブジェクトの共有を容易にし、合理化するために、
その他の制限事項と既知の問題
重要
プロジェクトから 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 はサポートされていません。
- 現在、ブートストラップとアンロックされた RegFree WinRT の自動初期設定値は、実行可能ファイル (OutputType=Exe または WinExe) を生成するプロジェクトにのみ設定されます。 これにより、既定でクラス ライブラリ DLL やその他の非実行可能ファイルに自動初期化子を追加できなくなります。
- 非実行可能ファイル (ブートストラップを初期化しない汎用実行可能ファイルによって読み込まれたテスト DLL など) で自動初期化子が必要な場合は、
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
または<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
を使用して、プロジェクトで自動初期化子を明示的に有効にすることができます。
- 非実行可能ファイル (ブートストラップを初期化しない汎用実行可能ファイルによって読み込まれたテスト DLL など) で自動初期化子が必要な場合は、
- Microsoft.WindowsAppRuntime.Release.Net.dll は常に Arm64 バイナリであり、x86 および x64 アプリでは機能しません。 Bootstrap API を明示的に呼び出す場合、Microsoft.WindowsAppRuntime.Release.Net.dll アセンブリは使用されません。 回避策として、NuGet パッケージで配布されるこのソース ファイルにバージョン定数を含めることができます: '..\include\WindowsAppSDK-VersionInfo.cs' または自動初期化子を使用します。
関連トピック
Windows developer