Windows アプリ SDK 1.1 の安定版チャネル リリース ノート
安定チャネルでは、運用環境のアプリによる使用がサポートされている Windows App SDK のリリースが提供されます。 Windows App SDK の安定リリースが使用されるアプリは、Microsoft Store に発行することもできます。
重要なリンク:
- 既存のアプリを以前のバージョンの Windows App SDK から新しいバージョンにアップグレードする場合は、「既存のプロジェクトを最新リリースの Windows App SDK に更新する」を参照してください。
最新の安定版チャネル リリース ノート:
Windows App SDK 用のダウンロード
Note
Windows アプリ SDK Visual Studio 拡張機能(VSIX)は、現在は個別のダウンロードとして配布されていません。 それらは、Visual Studio内のVisual Studio Marketplaceで利用可能です。
バージョン 1.1
Windows App SDK の安定版チャネルの 1.1.x 系列で使用できる最新リリースはバージョン 1.1.5 です。 1.1.x はすべての安定版チャネルの機能をサポートしています (「Windows App SDK のリリース チャネル」の「リリース チャネルで使用可能な機能」セクションを参照してください)。
バージョン 1.1.5
これは、1.1 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
バグ修正 (1.1.5)
- Mica が有効な場合、Acrylic が機能しない問題を修正しました。 詳細については、GitHub の issue 7200 を参照してください。
- WindowsAppRuntime インストーラーに依存するアプリ (たとえば、パッケージ化されていないアプリ) が Windows 10 ARM64 マシンで実行できない問題を修正しました。 詳細については、GitHub の issue 2564 を参照してください。
バージョン 1.1.4
これは、1.1 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
バグ修正 (1.1.4)
- 1.0.x からの回帰により、多数の項目をスクロールするときに ListView、TreeView、その他の 'List' コントロールがクラッシュする問題を修正しました。 詳細については、GitHub の issue 7230 を参照してください。
- DispatcherQueue によって、キューに格納されたコールバックが起動されなくなる問題を修正しました。
- 同じアプリ セッションで
DeploymentManager.Initialize
を複数回呼び出すと、アプリがクラッシュする問題を修正しました。 - Arm64 の Visual Studio で C# アプリのビルドに失敗する問題を修正しました。 詳細については、GitHub の issue 7140 を参照してください。
- 不適切な障害処理により XAML イメージング コードで発生する断続的なクラッシュを修正しました。
- ItemsRepeater のイベント ハンドラーを親 UserControl にアタッチするときのメモリ リークの問題を修正しました。 詳細については、GitHub の issue 6123 を参照してください。
- アプリ プロジェクトがサイドロードされたときにパッケージの自動更新を有効にするように構成されている場合 (つまり .appinstaller)、Visual Studio 17.3 でビルド エラーが発生する問題を修正しました。 詳細については、issue 2773 を参照してください。
- メインおよびシングルトン パッケージが既にインストールされていると、DeploymentManager::GetStatus から
Package Install Needed
が返されるので、Initialize を呼び出す Store 配布パッケージ アプリ (Push などに必要) が重複して呼び出される問題を修正しました。 これにより、アプリ起動時にパフォーマンスが低下していました。 - 単一インスタンス アプリで、クリーン イベントを開けない場合に無視するという仕様だった場合に、例外が発生する問題を修正しました。 詳細については、GitHub の PR を参照してください。
バージョン 1.1.3
これは、1.1 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
バグ修正 (1.1.3)
- アプリの最初のページに ProgressBar、ProgressRing、PipsPager、PersonPicture、または Expander コントロールを含めると XAML がクラッシュすることに関連する一連の問題を修正しました。 詳細については、GitHub の issue 7164 を参照してください。
- x64 インストーラーが Windows App SDK ランタイムのインストールに失敗する問題を修正しました。 詳細については、GitHub の issue 2713 を参照してください。
- WindowsAppRuntime の新しいバージョンがインストールされている場合に、インストールに失敗する問題を修正しました。 詳細については GitHub のディスカッション 2708 を参照してください。
バージョン 1.1.2
これは、1.1 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
バグ修正 (1.1.2)
- ダイアログを開いたままウィンドウを閉じると、XAML がクラッシュする問題を修正しました。 詳細については、GitHub の issue 1032 を参照してください。
- StyleCop の警告を防ぐために、C# ファイルに
<auto-generated>
タグを追加しました。 詳細については、GitHub の issue 4526 を参照してください。 - 一致するフレームワーク パッケージがインストールされていないときに MddBootstrapInitialize を呼び出すと、アクセス違反エラーとクラッシュが発生する問題を修正しました。 詳細については、GitHub の issue 2592 を参照してください。
- Visual Studio で C# WinUI 3 項目テンプレートが見つからない問題を修正しました。 詳細については、GitHub の issue 7148 を参照してください。
- システム ユーザーとして WindowsAppRuntime インストーラーを実行すると失敗する問題を修正しました。 詳細については、GitHub の issue 2546 を参照してください。
バージョン 1.1.1
これは、1.1 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
バグ修正 (1.1.1)
- ドラッグ アンド ドロップ操作中にアプリがクラッシュすることがある問題を修正しました。 詳細については、GitHub の issue 7002 を参照してください。
- AppWindowPresenterKind を FullScreen から Default に切り替えると、タイトル バーが消える問題を修正しました。
ApiInformation.IsPropertyPresent
やApiInformation.IsMethodPresent
のような Bootstrapper API が、パッケージ化されていないアプリでハンドルされない例外が発生する問題を修正しました。 詳細については、GitHub の issue 2382 を参照してください。- ペン入力でアプリケーションを最大化すると、アプリケーションがフリーズする問題を修正しました。
1.1 の新機能と更新された機能および既知の問題
以下のセクションでは、1.1 の新機能と更新された機能、制限事項、既知の問題について説明します。
注意
C# 開発者の場合は、6.0.202、6.0.104、5.0.407、5.0.213 の .NET SDK バージョン (またはそれ以降) のいずれかが必要です。 .NET SDK バージョンを更新するには、「.NET のダウンロード」を参照するか、Visual Studio の最新バージョンに更新してください。 必要な .NET SDK バージョンがない状態で NuGet パッケージを更新すると、次のようなエラーが表示されます: "このバージョンの WindowsAppSDK には WinRT.Runtime.dll バージョン 1.6 以降が必要です。"。
アプリのライフサイクルと再起動
アプリは、既存の RegisterApplicationRestart API に基づいて、特定の引数と状態を指定して明示的に再起動を開始できるようになりました。これにより、更新、ハングアップ、再起動のシナリオで再起動する OS に登録することができます。
新機能:
- パッケージ化された、またはパッケージ化されていないデスクトップ アプリから、停止と再起動をコマンドによって自動的に行うことができます。また、
AppInstance.Restart()
API を使って再起動したインスタンスの任意のコマンドライン文字列にアクセスできます。- これは、UWP
RequestRestartAsync()
API の強化された同期バージョンです。引数を指定して再起動し、再起動が失敗した場合はAppRestartFailureReason
を返すことができます。 - 使用方法と参照情報については、GitHub の Restart API ドキュメントを参照してください。
- これは、UWP
WinUI 3
WinUI 3 は、Windows App SDK 用のネイティブ ユーザー エクスペリエンス (UX) フレームワークです。 このリリースには、WinAppSDK 1.0 の新機能と、1.0 および 1.1 プレビュー リリースからのいくつかの安定性の機能強化が含まれています。
新機能:
- Mica と Background Acrylic を WinUI 3 アプリケーションで使用できるようになりました。
- これらの素材の詳細については、「Windows 11 の素材」を参照してください。 C++ アプリケーションで Mica を適用するためのサンプル コードについては、「Windows 11 のデスクトップ アプリでマイカ素材またはアクリル素材を適用する」を、C# アプリケーションで Mica を適用するためのサンプル コードについては、WinUI 3 ギャラリーの一部として GitHub を参照してください。
- WinUI 3 アプリケーションの同一スレッド上で複数のウィンドウを作成する機能は 1.0.1 で初めて導入され、安定化に取り組み、使用できるようになりました。 詳細については、issue 5918 を参照してください。
修正されたバグ:
- Mica を使う場合に、ウィンドウを 2 画面で均等に分割するとアプリがクラッシュする問題を修正しました。 詳細については、GitHub の issue 7079 を参照してください。
- WebView2 SDK を 1020.46 から 1185.39 にアップグレードすると、C/C++ ランタイム (CRT) がインストールされていない場合に、WebView2 を使った C# アプリが起動時にクラッシュする問題を修正しました。
- 一部の丸い角が、単色のはずがグラデーションで表示される問題を修正しました。 詳細については、GitHub の issue 6076 & issue 6194 を参照してください。
- 更新されたスタイルが generic.xaml に含まれていない問題を修正しました。
- ListView の末尾までスクロールするとアプリがクラッシュするレイアウト サイクルの問題を修正しました。 詳細については、GitHub の issue 6218 を参照してください。
- ドラッグ アンド ドロップが有効な場合に、ユーザーが要素をドロップできない問題を修正しました。 詳細については、GitHub の issue 7008 を参照してください。
既知の制限事項:
- カスタム タイトル バーを使っている場合、テーマを変更してもキャプション コントロールの色は変わりません。
- ユーザーがダイアログを開いたままウィンドウを閉じると、XAML がクラッシュします。
デプロイ
新機能:
- パッケージ化されたアプリで、DeploymentManager.Initialize (DeploymentInitializeOptions) API を使って、または Windows App Runtime インストーラーで --force オプションを使って Windows App SDK ランタイム パッケージの展開を強制できるようになりました。
- パッケージ アプリで使用できる追加の機能拡張カテゴリである UnlockedDEH があります。 詳細については、1.1 Preview 3 のリリース ノートを参照してください。 これらには、Windows App SDK フレームワーク パッケージがインストールされている必要があります。 ランタイムをインストールするには、「最新の Windows アプリ SDK ダウンロード」を参照してください。
- 自己完結型の展開がサポートされています。 フレームワーク依存型と自己完結型の展開の違い、基本的な使い方については、「Windows App SDK 展開の概要」を参照してください。
- MSIX で展開しないアプリに必要な Bootstrapper API には、使いやすさとトラブルシューティングを向上させる新しいオプションが追加されました。 C# アプリについては、Bootstrapper C# の API、C++ アプリについては、mddbootstrapheader.h ヘッダーのドキュメントを参照してください。 詳細については、「外部の場所でパッケージ化されているか、パッケージ化されていないアプリの Windows App SDK ランタイムを使用する」を参照してください。
既知の制限事項:
- Windows アプリ ランタイムのインストーラー (WindowsAppRuntimeInstall.exe) を実行するには、サイドローディングを有効にする必要があります。 詳細については、GitHub の issue 2469 を参照してください。
- Visual Studio の [プロジェクト] メニューから MSIX パッケージを作成すると、一部のシナリオで Visual Studio がクラッシュすることがあります。 この問題は、Visual Studio バージョン 17.3 Preview 2 で修正され、17.2 で提供される予定です。 この問題が発生した場合は、コマンド ラインから MSIX を生成するか、パッケージ化されていないプロジェクトに切り替えるか、Windows App SDK 1.0 に戻すことで回避できます。
- MSIX でパッケージ化された自己完結型アプリケーションは、1809 ではサポートされておらず、アプリは起動時にクラッシュします。
Elevation
管理者特権を使ってアプリを実行できるようになりました。
既知の制限事項:
- 管理者特権のサポートには、次の OS サービス更新プログラムが必要です。
- 管理者特権のパッケージ化されていないアプリのアプリ通知とプッシュ通知はサポートされていません。
- 管理者特権で実行されている WinUI 3 アプリで、ドラッグ アンド ドロップ操作中に要素をドラッグすると、クラッシュします。
Environment Variable Manager
Environment Variable Manager は、Windows App SDK 1.1 で導入された新しい API です。 開発者は Environment Variable Manager を使うと、1 つの API 画面からプロセス、ユーザー、マシン スコープの環境変数にアクセスして変更することができます。
パッケージ アプリケーションから Environment Variable Manager を使うと、すべての環境変数の操作が記録されます。 パッケージが削除されると、すべての環境変数の操作が元に戻ります。
新機能:
- プロセス、ユーザー、マシンのスコープで環境変数を取得および設定します。
- Environment Variable Manager を使うパッケージが削除されると、環境変数は自動的に元に戻ります。
- PATH と PATHEXT の特定の API が含まれています。
既知の制限事項:
- Windows 11 でのみ使用できます
MRT Core
MRT Core は、Windows アプリ SDK の一部として配布される最新の Windows リソース管理システムの簡素化されたバージョンです。
修正された問題:
- VS UI を使ってリソース ファイルを追加したときに、既定でリソースのインデックスが作成されない問題は、.NET SDK 6.0.300 で修正されました。 以前の .NET SDK バージョンを使っている場合は、1.0 のリリース ノートに記載されている回避策を引き続き使ってください。 詳細については、GitHub の issue 1786 を参照してください。
- パッケージ化されていない C++ WinUI 3 アプリでリソース URI が正常にビルドされない問題は、Visual Studio 2022 17.2 で修正されました。 以前の Visual Studio バージョンを使っている場合、この修正プログラムを受け取るには、Visual Studio を 17.2 に更新してください。
既知の制限事項:
- .NET プロジェクトでは、アプリが既にビルドされている場合、コピーしてプロジェクト フォルダーに貼り付けたリソース ファイルには、F5 でインデックスが作成されません。 回避策として、アプリをリビルドします。 詳細については、GitHub の issue 1503 を参照してください。
詳細については、「MRT Core を使用してリソースを管理する」を参照してください。
通知
パッケージ アプリ (外部の場所を使うパッケージ アプリを含みます) とパッケージ化されていないアプリの開発者は Windows 通知を送信できるようになりました。
新機能:
- パッケージ アプリとパッケージ化されていないアプリのアプリ通知をサポートします。
- 開発者は、ローカルまたは独自のクラウド サービスから、トースト通知とも呼ばれるアプリ通知を送信できます。 「アプリ通知の概要」を参照してください。
- パッケージ アプリとパッケージ化されていないアプリのプッシュ通知をサポートします。
- 開発者は、生の通知とアプリの通知を独自のクラウド サービスから送信できます。 「プッシュ通知の概要」を参照してください。
既知の制限事項:
- 管理者特権アプリから通知を送信することはサポートされていません。
PushNotificationManager::IsSupported()
は管理者特権モードのチェックを実行しません。
ウィンドウ化
USER32.dll に実装されている機能 (「Windows とメッセージ」を参照してください) にプログラムから簡単にアクセスできるように、このリリースの AppWindow
にはその他の機能が表示されます。
新機能:
- 既存のウィンドウがあるアプリは、
ShowWindow(SW_SHOWDEFAULT)
と同等のAppWindow.ShowOnceWithRequestedStartupState
を呼び出すことで、ウィンドウの表示方法をより詳細に制御できます。 - アプリで、呼び出しが行われた時点でウィンドウをアクティブにするかどうかを指定するときに、ウィンドウを表示、最小化、または復元できます。
- Win32 座標でウィンドウのクライアント領域のサイズとして特定の寸法をアプリで指定できるようになりました。特定のクライアント領域のサイズを取得するために非クライアント領域のサイズを計算する必要はありません。
- SetWindowPos の hWndInsertAfter 機能に基づいて、ウィンドウの z オーダー管理をサポートするために、追加の WinRT API を使用できるようになりました。
AppWindowTitleBar.ExtendsContentIntoTitleBar
を使ってカスタム タイトル バーを描画するアプリで、PreferredTitleBarHeight
オプションを設定できます。 標準の高さのタイトル バーか、対話型コンテンツ向けに領域を確保する縦長のタイトル バーのどちらかを選択できるようになりました。 縦長のタイトル バーを使う場合のアドバイスについては、Fluent デザイン ガイドラインのタイトル バーに関する記事を参照してください。
修正された問題:
- 全画面表示プレゼンターを初めて起動したときに、ウィンドウが画面全体に適切に収まるようになりました。 詳細については、GitHub の issue 1853 を参照してください。
AppWindow::GetFromWindowId
を使って作成されたウィンドウは既定のプレゼンターがOverlappedPresenter
ですが、他の API によるウィンドウ スタイルの変更に関しては制限はありません。 AppWindow::Create を使って作成されたウィンドウには、最初から既定のプレゼンター ガードレールが設定されています。 詳細については、GitHub の issue 2049 を参照してください。OverlappedPresenter.SetBorderAndTitlebar
API を使ってキャプション ボタンと境界線を非表示にすると、最大化したときに上の境界線が 1 ピクセルになります。 これは解決しました。 詳細については、GitHub の issue 1693 を参照してください。
既知の制限事項:
AppWindowTitlebar API を使って標準タイトル バーの色をカスタマイズすると、標準タイトル バーと比べてアイコンとテキストの表示位置がずれています。 詳細については、GitHub の issue 2459 を参照してください。
GitHub issue 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# コンポーネントを作成し、Windows App SDK を使用する C++/WinRT アプリから使用する」と GitHub のサンプルを参照してください。
その他の制限事項と既知の問題
- WebView2 に依存するパッケージ (Microsoft.Identity.Client など) を参照するアプリはビルドに失敗します。 これは、ビルド時のバイナリの競合が原因です。 詳細については、GitHub の issue 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" に更新します。
関連トピック
Windows developer