Windows アプリ SDK 1.5 の安定チャネルリリース ノート
安定チャネルでは、運用環境のアプリによる使用がサポートされている 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.5.8 (1.5.241107002)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- スレッドの入力キューが正しくない状態にあると思われる場合のクラッシュの可能性を修正しました。
- すべてのコンポーネントで null をチェックすることで、
{x:Bind}
を使用するときのクラッシュの可能性を修正しました。 この修正プログラムを必要とするアプリは、このリリースで再コンパイルする必要があります。
バージョン 1.5.7 (1.5.241001000)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- アプリがレンダリングを停止し、回復しないまれなシナリオの検出を追加しました。
- UI スレッドが初期化されていない場合のクラッシュの可能性を修正しました。
- CommandBar がウィンドウの下部にあったときに、CommandBar のメニューが正しく開かなかった可能性がある問題を修正しました。
バージョン 1.5.6 (1.5.240802000)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- [最小]/[最大]/[閉じる]ボタンへの入力が中断されることがある
InputNonClientPointerSource
に関する問題を修正しました。 詳細については、GitHub の問題 #9749 を参照してください。 - タッチパッドの使用中にウィンドウを閉じるときにクラッシュする可能性がある問題を修正しました。
バージョン 1.5.5 (1.5.240627000)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- 読み込みが完了する前にイメージ ソースが変更されたときに、イメージの読み込み中にクラッシュする可能性がある問題を修正しました。
InputNonClientPointerSource
使用時のクラッシュの可能性を修正しました。- WebView2 コントロールのみを含むウィンドウで、初期キーボード フォーカスが WebView2 に正しく設定されず、キーボードおよびアクセシビリティ ツールでは使用できなくなる問題を修正しました。 詳細については、GitHub の問題 WebView2Feedback#2330 を参照してください。
バージョン 1.5.4 (1.5.240607001)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- ライブラリの resources.pri をアプリの resources.pri に適切にマージするために、GitHub の問題 #8857 の修正に関する問題を修正しました。
- WebView2 がクリックするたびに追加の
blur
イベントとfocus
イベントを送信する問題を修正しました。 詳細については、GitHub の問題 #9288 を参照してください。 これにより、GitHub の問題 #9566 で示されているように、ドロップダウンが応答しない問題も修正されます。 - 新しいウィンドウまたはポップアップを作成すると、進行中のドラッグ操作が取り消される問題を修正しました。 詳細については、GitHub の問題 #9360 を参照してください。
- 負のビューボックスを定義する SVG ファイルがレンダリングされなくなる問題を修正しました。 詳細については、GitHub の問題 #9415 を参照してください。
- 弱い参照を使用する前に
x:Bind
nullをチェックしないとクラッシュする可能性がある問題を修正しました。 詳細については、GitHub の問題 #9551 を参照してください。 - ウィンドウが最大化されたときにタイトル バーの端にサイズ変更カーソルが誤って表示される問題を修正しました。これにより、それらの領域をクリックまたはドラッグするときにも正しくない動作が発生しました。 詳細については、GitHub の問題 #8665 を参照してください。
バージョン 1.5.3 (1.5.240428000)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
ItemsRepeater
は時々、ウィンドウを前面に表示することがある問題を修正しました。AcrylicBrush
の透明度の状態が更新されたときのクラッシュの可能性を修正しました。- メイン ウィンドウよりも高さがある、または幅の広い
ShouldConstrainToRootBounds="false"
ポップアップ内にある場合に、ItemsRepeater
が十分な項目が生成しない問題を修正しました。 - プロジェクト ファイルで TargetPlatformVersion が指定されていない場合の、ビルド時にエラー MSB4086 が発生する可能性がある問題を修正しました。 このエラーは、GitHub の問題 #9531 の一部として発生しました。
バージョン 1.5.2 (1.5.240404000)
これは、Windows アプリ SDK 1.5 リリースの重大なバグ修正とウィジェット フィード プロバイダー向け新機能を含んだ Windows アプリ SDK のサービス リリースです。
ウィジェット フィード プロバイダーの更新
- フィード プロバイダーは、ウィジェット ダッシュボードでアナウンスを表示できるようになりました。
- 新しい
FeedManager.TryShowAnnouncement
API を使用すると、フィード プロバイダーはウィジェット ダッシュボードにアナウンスを表示するよう要求できます。 アナウンスを表示するには、FeedAnnouncement
オブジェクトを作成してFeedManager.TryShowAnnouncement
API を呼び出します。 - [アナウンスのフィード] では、
FeedAnnouncement
API を使用してカスタマイズできる独自のバッジがタスク バーに表示されます。
- 新しい
- フィード プロバイダーは、ユーザーが操作するプロバイダーに関する分析レポートとエラー レポートの情報の受信をオプトインできるようになりました。 オプトインするには、プロバイダーにより
IFeedProviderAnalytics
インターフェイスとIFeedProviderErrors
インターフェイスの一方または両方を実装します。
フィード プロバイダーの更新には、次の新しい API が含まれています。
Microsoft.Windows.Widgets.Feeds.Providers
FeedAnalyticsInfoReportedArgs
FeedErrorInfoReportedArgs
FeedManager
SendMessageToContent
TryShowAnnouncement
FeedMessageReceivedArgs
FeedResourceRequest
FeedResourceRequestedArgs
FeedResourceResponse
IFeedAnnouncementInvokedTarget
IFeedManager2
IFeedProviderAnalytics
IFeedProviderErrors
IFeedProviderMessage
IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
AnnouncementActionKind
AnnouncementTextColor
FeedAnnouncement
FeedAnnouncementInvokedArgs
バグ修正
- プライマリ ディスプレイが 60 Hz で実行されていない場合に、正しい時刻に
DispatcherTimer
が起動しない問題を修正しました。 - 100% 以外のスケール ファクターで実行すると、テキスト ボックス入力メソッド エディター (IME) ウィンドウが正しく配置されない問題を修正しました。 詳細については、GitHub の問題 #9382 を参照してください。
- 別のアプリからドラッグ アンド ドロップ操作を開始すると、コピー/移動/リンクの正しいドロップ操作が許可されない問題を修正しました。
- ListView の
ItemsSource
がリセットされ、すぐにフォーカスが当てられると発生する可能性のあるクラッシュを修正しました。 - 継承されたスケール変換に
ShouldConstrainToRootBounds="false"
ポップアップが適用されない問題を修正しました。 詳細については、GitHub の問題 #9118 と #9433 を参照してください。 - アニメーションが実行している状態でコンポジション オブジェクトが破棄された場合に発生する可能性があるクラッシュを修正しました。
NavigationView::RevokeNavigationViewItemRevokers
でシャットダウン時に発生する可能性のあるクラッシュを修正しました。
バージョン 1.5.1 (1.5.240311000)
これは、1.5 リリースの重大なバグの修正が含まれている Windows App SDK のサービス リリースです。
- 「map.html」をコピーできないために自己完結型アプリのビルドに失敗する場合がある問題を修正しました。
- 有効なトークンが拒否されることで
MapControl
が初期化に失敗する問題を修正しました。 詳細については、GitHub の問題 #9324 を参照してください。 - 青い背景で
MapControl
が読み込まれる問題を修正しました。 詳細については、GitHub の問題 #9377 を参照してください。 NavigationViewItem
のシェブロンをクリックしても、1 回のクリックで正しく展開または折りたたまれない問題を修正しました。 これが原因で、PaneDisplayMode="Top"
モードでシェブロンをクリックするとメニューが空白として表示される問題も起きていました。 詳細については、GitHub の問題 #9423 と #9426 を参照してください。- タッチまたはペンで
NavigationViewItem
をタップすると、アイテムがそれ以降の入力に応答しなくなる問題を修正しました。 詳細については、GitHub の問題 #9429 を参照してください。 NavigationView.PaneFooter
領域内のアイテムをクリックするとクラッシュする問題を修正しました。 詳細については、GitHub の問題 #9396 を参照してください。- メニューのアイコンが間違った場所に表示される場合がある問題を修正しました。 詳細については、GitHub の問題 #9409 を参照してください。
- ウィンドウから切り替えて戻るまで、アクリルがメニューに表示されない問題を修正しました。 詳細については、GitHub の問題 #9406 を参照してください。
TextBox
/RichEditBox
の初期化中に発生する可能性があるクラッシュを修正しました。 詳細については、GitHub の問題 #9216 を参照してください。NavigationView
が破棄時にスローされ、キャッチされるノイズの多い一部の例外を修正しました。- 間違った
PointerCaptureLost
メッセージが発生したことが原因で、「ピンチ操作によるズーム」 ジェスチャがパンまたはタップとして表示される場合がある問題を修正しました。
バージョン 1.5
以降のセクションでは、バージョン 1.5 の新機能と更新された機能、既知の問題について説明します。
既存の Windows App SDK 1.4 アプリでは、Nuget パッケージを 1.5.240227000 に更新できます (「NuGet パッケージ マネージャーを使用して Visual Studio にパッケージをインストールして管理する」の「パッケージを更新する」セクションを参照)。
更新されたランタイムと MSIX については、Windows App SDK 用のダウンロード ページを参照してください。
XAML Islands ランタイムおよびシャットダウンの更新
WinAppSDK 1.4とWinAppSDK 1.5では、XAML Islandsベースのアプリケーションで、任意のスレッド上の最後のXAMLウィンドウが閉じられた場合の動作に違いがあります。
- WinAppSDK 1.4では、スレッド上の最後のXAMLウィンドウが閉じられると、常にXAMLランタイムはスレッドのイベントループを終了します。
- WinAppSDK 1.5 の場合:
- アプリが WinUI Desktop アプリの場合、既定の反応は WinAppSDK 1.4 と同じです。
- デスクトップWindowXamlSource("XAML Islands")APIでXAMLを使用している場合、デフォルトの動作は、XAMLが自動的にスレッドのイベントループを終了しないようになりました。
- 双方のモードで、
Application.DispatcherShutdownMode
プロパティを設定して、この反応を変更できます。
詳細については、使用可能であれば Application.DispatcherShutdownMode
プロパティ用ドキュメンテーションを参照してください。 GitHub提案#8492.が完了しました。
WinAppSDK 1.4とWinAppSDK 1.5のXAML Islandsベースのアプリにおいて、XAMLランタイムのライフタイムには動作上の違いがあります。
- WinAppSDK 1.4 では、特定のスレッド上のすべての
WindowsXamlManager
およびDesktopWindowXamlSource
オブジェクトが閉じられるかシャットダウンされるか、そのスレッドで実行されているDispatcherQueue
がシャットダウンされると、XAML ランタイムはスレッド上でシャットダウンします。 ダウンします (この場合、XAML ランタイムはDispatcherQueue.FrameworkShutdownStarting
段階でシャットダウンします)。 - WinAppSDK 1.5 では、XAML ランタイムは、そのスレッド上で実行されている DispatcherQueue がシャットダウンされた場合にのみスレッド上でシャットダウンします (Xaml ランタイムは常に
DispatcherQueue.FrameworkShutdownStarting
ステージでシャットダウンされます)。
詳細については、使用可能であれば WindowsXamlManager
クラス用ドキュメンテーションを参照してください。
WindowsXamlManager.InitializeForCurrentThread()
には動作の違いがあります:
- WinAppSDK 1.4 では、
WindowsXamlManager.InitializeForCurrentThread()
は呼び出しごとにWindowsXamlManager
オブジェクトの一意のインスタンスを返します。 - WinAppSDK 1.5 では、スレッド上に既存のインスタンスが存在する場合、
WindowsXamlManager.InitializeForCurrentThread()
は既存のインスタンスを返します。Close/Dispose()
は無視されるようになりました。
WinUI Maps コントロール
WinUIMaps
コントロールが利用できるようになりました。 このコントロールは、WebView2 と Azure Maps を利用し、次の機能を提供します。
- マップ ボタンまたはタッチによるパンとズーム。
- マップのスタイルを、サテライト、地形、またはストリート ビューに変更。
- プログラムによって、開発者がカスタマイズ可能なアイコンを含む対話可能なピンをマップに追加します。
- 初期読み込みがマップに基づく箇所における開発者によるカスタマイズ。
- パン、ズーム、マップ スタイルのボタンの非表示または表示に対する開発者によるコントロール。
Note
Maps
コントロールを使用するには、Azure Maps キーが必要です。 キーを作成するには、Web アプリ作成用 Azure Maps ドキュメンテーション ページを参照してください。
Maps
コントロールは全く新しい機能であり、今後の方向性の評価のため皆様のフィードバックをお待ちしております。
新しい SelectorBar コントロール
バージョン 1.5 では、ユーザーが複数のデータ ビューを切り替えられるようにする新しいコントロールSelectorBar
を追加しました。 このコントロールは、1.5 ロードマップでは以前は「SegmentedControl」と呼ばれていました。
CommandBarFlyout の基本コマンドのラベル
CommandBarFlyout
のビジュアルが更新され、Label
プロパティが AppBarButton
() に設定されている場合に、プライマリ コマンド領域の項目のテキスト ラベルが表示されるようになりました。 以前は、CommandBarFlyout
エリアの主なコマンドはアイコンのみを表示していましたが、使いやすさを向上させるためにアイコンとラベルの両方を表示できるようになりました。
カスタム環境/オプションの WebView2 サポート
WinUI WebView2
コントロールは、カスタム CoreWebView2
およびCoreWebView2Environment
を使用して基になる () オブジェクトをカスタマイズする機能を公開するようになりました。 これにより、アプリ作成者は、WebView2Runtime の読み込み元となる代替パスを指定したり、別の UserDataFolder の使用を選択したり、IsPrivateModeEnabled()ScriptLocaleなどのオプションを設定したりすることができます。
.NET 8 のサポート
最近の 1.4 サービス リリースで .NET 8 のサポートを追加しましたが、プラットフォーム固有の RID の使用に対する警告は依然として残りました。 1.5 ではその作業が完了し、警告が表示されなくなりました。
デバッグとソースの可用性の向上
現在、microsoft-ui-xaml リポジトリ内のコードの Github ソース サーバー情報がパブリック シンボルに挿入され、デバッガーがソース コードを自動的にダウンロードできるようになりました。 また、デバッグ エクスペリエンスを向上させるために、WinAppSDK 全体のシンボルにその他の修正と改善も加えました。
レイアウトサイクルのデバッグ機能の改善
WinUI アプリでのレイアウト サイクルのデバッグは困難な場合があるため、1.5 ではDebugSettings
オブジェクトで、レイアウト プロセスのログ記録とブレークポイントの改善を有効にするオプションが公開され、アプリでのレイアウト サイクルのデバッグと修正が容易になります
WinAppSDK における他の新機能
- PublishSingleFile デプロイ モデルのサポートが追加されました。 PublishSingleFile について詳しくは、 単一ファイルのデプロイに関するドキュメンテーションをご覧ください。
- スクリーン リーダーのサポート、テキスト スケーリングのサポート、その他のアクセシビリティ機能に改善が追加されました。
- 優先順位の高い GitHub バグ バックログに基づいて、さまざまな安定性とパフォーマンスが向上しました。
新機能は個別にリリースされます
C# および C++ 用の WinAppSDK Visual Studio テンプレートの新しいバージョンが Visual Studio Marketplace を通じてリリースされており、1.5 のリリースから数週間後に表示されます。 新しいバージョンでは、テンプレートを WinAppSDK リリースとは独立してリリースできるようになり、顧客に更新情報を提供する際の柔軟性が大幅に向上しました。
以前に計画されていたその他の機能
1.5 では、ロードマップで発表した次の機能について進展がありましたが、完了していませんでした。 これらは 1.6 タイムフレームまで継続されます。
- タブ付きウィンドウ
- ドラッグ アンド ドロップによる WebView2 のサポート
- わかりやすくするために、1.5 での into WebView2 のドラッグ (エクスプローラーから Visual Search のBingへの PNG のドラッグなど) がサポートされています。 WebView2 の out のドラッグをサポートする作業は、1.6 で進行中です。
- テーブルビューとインクコントロールの調査
ダイナミックライティングは当面ロードマップから削除されました。
既知の問題
- .xaml ファイルなどのリソースを含むライブラリを使用すると、実行時にそれらのリソースが見つからないことを示すエラー メッセージが表示されることがあります。 この場合、それらのリソースが確実に含まれるように、プロジェクト ファイルに
<ShouldComputeInputPris>true</ShouldComputeInputPris>
を挿入することが必要になる場合があります。 NavigationViewItem
の山形をクリックしても、1 回のクリックで正しく展開または折りたたまれなくなりました。 ダブルクリックは引き続き機能し、NavigationViewItem
の他の場所をクリックしても機能します。
バグ修正
StackPanel
が折りたたまれたアイテムに間隔を適用する問題を修正しました。 詳細については、GitHub の問題 #916 を参照してください。- 別のアプリウィンドウを閉じた後にスクロールコントロールが機能しなくなる問題を修正しました。 詳細については、GitHub の問題 #9292 および #9355を参照してください。
- 最初のフレームがレンダリングされる前に
DebugSettings.EnableFrameRateCounter
を 正しい EF に設定するとクラッシュする問題を修正しました。 詳細については、GitHub イシュー #2835 を参照してください。 - 一部のヘッダーに必要な依存関係が含まれていない場合の C++ の潜在的なコンパイル エラーを修正しました。
#include
順序の変更は、アプリが 2023 より古いバージョンの C++/WinRT を使用している場合にIInspectable
のコンパイル エラーが発生する可能性があるなど、一部のアプリに影響を与える可能性があることに注意してください。 詳細については、GitHub の問題 #9014 を参照してください。 ItemsRepeater
DataTemplate
内でElementName
バインドが機能しない問題を修正しました。 詳細については、GitHub の問題 #560 を参照してください。- アプリ内ツールバーが有効になっている Visual Studio でアプリを実行するとクラッシュする問題を修正しました。 修正を完全に入手するには、Visual Studio 17.8 Preview 2 以降が必要です。 詳細については、GitHub の問題 #8806 を参照してください。
- 高速スクロール時に
AnnotatedScrollbar
がクラッシュすることがある問題を修正しました。 - メニューテキストが時々切り詰められる問題を修正しました。
- TeachingTip が適切な対象を受け取らない問題を修正しました。 詳細については、GitHub の問題 #3257 を参照してください。
TeachingTip
のTailVisibility
を、起動時に折りたたむに設定するとアプリケーションがクラッシュする問題を修正しました。 詳細については、GitHub の問題 #8731 を参照してください。- ライブラリ使用時の PRI ファイルの処理方法に関する問題を修正しました。 詳細については、GitHub の問題 #8857 を参照してください。
- プロジェクション DLL が生成されない 1.5-experimental2 リリースの問題を修正しました。 詳細については、GitHub の問題 #4152 を参照してください。
RichEditBox
のテキスト書式設定ポップアップ上の 3 点リーダーボタンがアクションの一覧を正しく表示しない問題を修正しました。 詳細については、GitHub の問題 #9140 を参照してください。ListView
がキーボード アクセラレーターを正しく扱わない問題を修正しました。 詳細については、GitHub の問題 #8063 を参照してください。AccessKey
を使ってウィンドウを閉じる際のアクセス違反問題を修正しました。 詳細については、GitHub の問題 #8648 を参照してください。AccessKey
() を使用してウィンドウを閉じるときのクラッシュを修正しました。 詳細については、GitHub の問題 #9002 を参照してください。MenuBar
にあるMenuFlyoutItem
のテキスト配置に影響する問題を修正しました。 詳細については、GitHub の問題 #8755 を参照してください。- 強調表示されたテキストが右クリック時に強調表示されたままとならない問題を修正しました。 詳細については、GitHub の問題 #1801 を参照してください。
- 非アクティブなウィンドウを閉じるとアプリがクラッシュする問題を修正しました。 詳細については、GitHub の問題 #8913 を参照してください。
- マウスの中央ボタンでスクロールし、直後に左クリックすると、アプリケーションがハングされることがある問題を修正しました。 詳細については、GitHub の問題 #9233 を参照してください。
- カスタムの
NavigationViewItem
を使用していると起動時にアプリがクラッシュする問題を修正しました。 詳細については、GitHub の問題 #8814 を参照してください。 - 省略記号ボタンで誤ってエラーが生成される
NavigationView
の問題を修正しました。 詳細については、GitHub の問題 #8380 を参照してください。 - マルチウィンドウ アプリで
SystemBackdrop
が正しくレンダリングされない問題を修正しました。 詳細については、GitHub の問題 #8423 を参照してください。 ObservableCollection
の先頭に挿入すると生じる重複の問題を修正しました。 詳細については、GitHub の問題 #8370 を参照してください。
関連トピック
Windows developer