Catatan rilis saluran yang stabil untuk SDK Aplikasi Windows
Saluran stabil menyediakan rilis SDK Aplikasi Windows yang didukung untuk digunakan oleh aplikasi di lingkungan produksi. Aplikasi yang menggunakan rilis stabil SDK Aplikasi Windows juga dapat diterbitkan ke Microsoft Store.
Rilis saluran stabil berikut saat ini tersedia:
Jika Anda ingin meningkatkan aplikasi yang sudah ada dari versi SDK Aplikasi Windows yang lebih lama ke versi yang lebih baru, lihat Memperbarui proyek yang ada ke rilis terbaru SDK Aplikasi Windows.
Unduhan untuk SDK Aplikasi Windows
Catatan
Windows App Visual Studio Extensions (VSIX) tidak lagi didistribusikan sebagai unduhan terpisah. Mereka tersedia di Visual Studio Marketplace di dalam Visual Studio.
Versi 1.5
Versi 1.5.3 (1.5.240428000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.5.
- Memperbaiki masalah di mana
ItemsRepeater
terkadang menyebabkan jendelanya dibawa ke depan. - Memperbaiki potensi crash saat status transparansi diperbarui
AcrylicBrush
. - Memperbaiki masalah di mana
ItemsRepeater
tidak akan menghasilkan item yangShouldConstrainToRootBounds="false"
cukup jika berada di popup yang lebih tinggi atau lebih lebar dari jendela utama. - Memperbaiki masalah di mana kesalahan MSB4086 dapat terjadi pada waktu build jika file proyek tidak menentukan TargetPlatformVersion. Kesalahan ini ditemui sebagai bagian dari masalah GitHub #9531.
Versi 1.5.2 (1.5.240404000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.5 dan fitur baru untuk penyedia umpan Widget.
Pembaruan penyedia umpan widget
- Penyedia umpan sekarang dapat menampilkan pengumuman di Dasbor Widget:
- API baru
FeedManager.TryShowAnnouncement
memungkinkan Penyedia Umpan untuk meminta agar Dasbor Widget menampilkan pengumuman mereka. Untuk menampilkan pengumuman Anda, buatFeedAnnouncement
objek dan panggilFeedManager.TryShowAnnouncement
API. - Pengumuman umpan akan memiliki lencana mereka sendiri yang ditampilkan di taskbar yang dapat disesuaikan menggunakan
FeedAnnouncement
API.
- API baru
- Penyedia umpan sekarang dapat memilih untuk menerima informasi Analitik dan Laporan Kesalahan tentang penyedia mereka saat pengguna berinteraksi dengannya. Untuk ikut serta, terapkan
IFeedProviderAnalytics
antarmuka dan/atauIFeedProviderErrors
oleh penyedia Anda.
Pembaruan penyedia umpan mencakup API baru berikut:
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
Perbaikan bug
- Memperbaiki masalah di mana
DispatcherTimer
tidak akan diaktifkan pada waktu yang benar jika tampilan utama tidak berjalan pada 60 Hz. - Memperbaiki masalah di mana jendela editor metode input kotak teks (IME) akan salah diposisikan saat berjalan pada faktor skala selain 100%. Untuk informasi selengkapnya, lihat Masalah GitHub #9382.
- Memperbaiki masalah di mana operasi seret dan letakkan dimulai dari aplikasi lain mungkin tidak mengizinkan operasi penurunan Salin/Pindahkan/Tautkan yang benar.
- Memperbaiki potensi crash saat ListView
ItemsSource
direset dan fokus yang diberikan segera. - Memperbaiki masalah di mana
ShouldConstrainToRootBounds="false"
popup/flyout tidak menerapkan transformasi skala yang diwariskan. Untuk informasi selengkapnya, lihat Masalah GitHub #9118 dan #9433. - Memperbaiki potensi crash ketika objek Komposisi dihancurkan dengan animasi yang masih berjalan.
- Memperbaiki potensi crash saat dimatikan di
NavigationView::RevokeNavigationViewItemRevokers
.
Versi 1.5.1 (1.5.240311000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.5.
- Memperbaiki masalah saat aplikasi mandiri mungkin gagal dibuat karena tidak dapat menyalin "map.html".
- Memperbaiki masalah di mana
MapControl
akan gagal diinisialisasi karena menolak token yang valid. Untuk informasi selengkapnya, lihat Masalah GitHub #9324. - Memperbaiki masalah saat
MapControl
dimuat dengan latar belakang biru. Untuk informasi selengkapnya, lihat Masalah GitHub #9377. - Memperbaiki masalah saat mengklik chevron
NavigationViewItem
yang tidak diperluas atau diciutkan dengan benar pada satu klik. Ini juga menyebabkan menu ditampilkan sebagai kosong saat mengklik chevron dalamPaneDisplayMode="Top"
mode. Untuk informasi selengkapnya, lihat Masalah GitHub #9423 dan #9426. - Memperbaiki masalah saat mengetuk
NavigationViewItem
dengan sentuhan atau pena akan mencegah item merespons input di masa mendatang. Untuk informasi selengkapnya, lihat Masalah GitHub #9429. - Memperbaiki crash saat mengklik item di area tersebut
NavigationView.PaneFooter
. Untuk informasi selengkapnya, lihat Masalah GitHub #9396. - Memperbaiki masalah di mana ikon dalam menu terkadang ditampilkan di tempat yang salah. Untuk informasi selengkapnya, lihat Masalah GitHub #9409.
- Memperbaiki masalah di mana akrilik tidak ditampilkan pada menu hingga beralih menjauh dari jendela dan kembali. Untuk informasi selengkapnya, lihat Masalah GitHub #9406.
- Memperbaiki crash yang dapat terjadi selama
TextBox
/RichEditBox
inisialisasi. Untuk informasi selengkapnya, lihat Masalah GitHub #9216. - Memperbaiki beberapa pengecualian berisik yang
NavigationView
melemparkan dan terjebak pada kehancuran. - Memperbaiki masalah di mana gerakan "jepit untuk memperbesar" terkadang akan muncul sebagai geser atau ketuk karena pesan yang salah
PointerCaptureLost
diaktifkan.
Versi 1.5
Bagian berikut menjelaskan fitur baru dan yang diperbarui serta masalah yang diketahui untuk versi 1.5.
Di aplikasi SDK Aplikasi Windows 1.4 yang ada, Anda dapat memperbarui paket Nuget ke 1.5.240227000 (lihat bagian Memperbarui paket di Menginstal dan mengelola paket di Visual Studio menggunakan Manajer Paket NuGet).
Untuk runtime dan MSIX yang diperbarui, lihat Unduhan untuk SDK Aplikasi Windows.
Pembaruan runtime dan matikan Kepulauan XAML
Ada perbedaan perilaku antara WinAppSDK 1.4 dan WinAppSDK 1.5 untuk aplikasi berbasis Kepulauan XAML ketika Jendela XAML terakhir pada utas apa pun ditutup.
- Di WinAppSDK 1.4, runtime XAML selalu keluar dari perulangan peristiwa utas ketika jendela XAML terakhir pada utas ditutup.
- Di WinAppsDK 1.5:
- Jika aplikasi Anda adalah aplikasi WinUI Desktop, perilaku defaultnya masih sama seperti di WinAppSDK 1.4.
- Jika Anda menggunakan XAML untuk API DesktopWindowXamlSource ("Kepulauan XAML"), perilaku default sekarang adalah bahwa XAML tidak secara otomatis keluar dari perulangan peristiwa utas.
- Di kedua mode, Anda dapat mengubah perilaku ini dengan mengatur
Application.DispatcherShutdownMode
properti .
Untuk informasi selengkapnya, lihat dokumentasi untuk Application.DispatcherShutdownMode
properti jika tersedia. Ini menyelesaikan proposal GitHub #8492.
Ada perbedaan perilaku antara WinAppSDK 1.4 dan WinAppSDK 1.5 untuk aplikasi berbasis Kepulauan XAML dalam masa pakai runtime XAML:
- Di WinAppSDK 1.4, runtime XAML dimatikan pada utas jika semua
WindowsXamlManager
objek danDesktopWindowXamlSource
pada utas tertentu ditutup atau dimatikan, atau berjalan pada utas tersebutDispatcherQueue
dimatikan (dalam hal ini, runtime XAML dimatikan selamaDispatcherQueue.FrameworkShutdownStarting
tahap). - Di WinAppSDK 1.5, runtime XAML dimatikan pada utas hanya ketika DispatcherQueue yang berjalan pada utas tersebut dimatikan (runtime Xaml selalu dimatikan selama
DispatcherQueue.FrameworkShutdownStarting
tahap).
Untuk informasi selengkapnya, lihat dokumentasi untuk WindowsXamlManager
kelas jika tersedia.
Ada perbedaan perilaku dalam WindowsXamlManager.InitializeForCurrentThread()
:
- Di WinAppSDK 1.4,
WindowsXamlManager.InitializeForCurrentThread()
mengembalikan instansWindowsXamlManager
unik objek dengan setiap panggilan. - Di WinAppSDK 1.5,
WindowsXamlManager.InitializeForCurrentThread()
mengembalikan instans yang ada jika sudah ada di utas.Close/Dispose()
sekarang diabaikan.
Kontrol Peta WinUI
Kontrol WinUI Maps
sekarang tersedia! Kontrol ini didukung oleh WebView2 dan Azure Peta, menyediakan fitur-fitur berikut:
- Menggeser dan memperbesar dengan tombol peta atau sentuhan.
- Mengubah gaya peta menjadi satelit, medan, atau tampilan jalan.
- Menambahkan pin yang dapat berinteraksi secara terprogram dengan ikon yang dapat disesuaikan pengembang ke peta.
- Kustomisasi pengembang tempat peta berpusat pada beban awal.
- Kontrol untuk pengembang atas persembunyian atau memperlihatkan tombol untuk panning, zooming, dan gaya peta.
Catatan
Untuk menggunakan Maps
kontrol, Anda memerlukan kunci Azure Peta. Untuk membuat kunci, lihat halaman dokumentasi Azure Peta untuk membuat aplikasi web.
Kontrol Maps
sepenuhnya baru dan kami menyambut umpan balik Anda untuk mengevaluasi arah masa depannya!
Kontrol SelectorBar Baru
Dalam 1.5, kami telah menambahkan kontrol baru SelectorBar
untuk memungkinkan pengguna beralih di antara beberapa tampilan data. Kontrol ini sebelumnya dikenal sebagai "SegmentedControl" pada peta strategi 1.5 kami.
Label dalam perintah utama CommandBarFlyout
Visual telah diperbarui CommandBarFlyout
untuk menampilkan label teks untuk item di area perintah utama jika Label
properti telah diatur pada AppBarButton
. Sebelumnya, perintah utama di CommandBarFlyout
area hanya menampilkan ikon, tetapi sekarang mereka dapat menampilkan ikon dan label untuk meningkatkan kegunaan.
Dukungan WebView2 untuk lingkungan/opsi kustom
Kontrol WinUI WebView2
sekarang mengekspos kemampuan untuk menyesuaikan objek yang mendasar CoreWebView2
dengan kustom CoreWebView2Environment
dan CoreWebView2ControllerOptions
. Ini memungkinkan penulis aplikasi menentukan jalur alternatif untuk memuat WebView2Runtime, memilih untuk menggunakan UserDataFolder yang berbeda, atau mengatur opsi seperti IsPrivateModeEnabled dan ScriptLocale.
Suppport untuk .NET 8
Kami menambahkan dukungan untuk .NET 8 dalam rilis layanan 1.4 baru-baru ini, tetapi itu masih menyimpan peringatan untuk penggunaan RID khusus platform. Dalam 1.5, kami menyelesaikan pekerjaan itu sehingga peringatan tidak lagi ada.
Penelusuran kesalahan dan ketersediaan sumber yang ditingkatkan
Kami sekarang menyuntikkan informasi server sumber Github untuk kode dalam repositori microsoft-ui-xaml ke simbol publik kami, yang memungkinkan debugger mengunduh kode sumber secara otomatis. Kami juga melakukan perbaikan dan peningkatan lainnya pada simbol kami di seluruh WinAppSDK untuk meningkatkan pengalaman debugging.
Fungsionalitas yang disempurnakan untuk siklus tata letak penelusuran kesalahan
Siklus tata letak penelusuran kesalahan di aplikasi WinUI dapat menjadi tantangan, jadi dalam 1,5 DebugSettings
objek sekarang mengekspos opsi untuk mengaktifkan pengelogan dan titik henti yang ditingkatkan untuk proses tata letak agar lebih mudah untuk men-debug dan memperbaiki siklus tata letak di aplikasi.
Fitur baru lainnya dari seluruh WinAppSDK
- Menambahkan dukungan untuk model penyebaran PublishSingleFile. Untuk informasi selengkapnya tentang PublishSingleFile, lihat Dokumentasi penyebaran file tunggal.
- Menambahkan peningkatan pada dukungan pembaca layar, dukungan penskalaan teks, dan fitur aksesibilitas lainnya.
- Berbagai peningkatan stabilitas dan performa berdasarkan backlog bug GitHub yang kami prioritaskan.
Fitur baru dirilis secara terpisah
Versi baru Templat Visual Studio WinAppSDK untuk C# dan C++ dirilis melalui Visual Studio Marketplace dan akan muncul beberapa minggu setelah rilis 1.5. Dengan versi baru, templat sekarang dapat dirilis secara independen dari rilis WinAppSDK, memberi kami lebih banyak fleksibilitas dalam mendapatkan pembaruan kepada pelanggan.
Fitur lain yang direncanakan sebelumnya
Pada 1.5, kami membuat kemajuan pada fitur-fitur berikut yang kami umumkan di peta strategi kami, tetapi tidak menyelesaikannya. Mereka akan berlanjut ke jangka waktu 1.6.
- Jendela bertab
- Dukungan seret-n-letakkan untuk WebView2
- Investigasi ke dalam tampilan tabel dan kontrol tinta
Pencahayaan dinamis telah dihapus dari peta jalan untuk saat ini.
Masalah umum
- Saat menggunakan pustaka yang berisi sumber daya seperti file .xaml, Anda mungkin mencapai pesan kesalahan pada runtime yang menunjukkan bahwa sumber daya tersebut tidak dapat ditemukan. Dalam hal ini, mungkin perlu disisipkan
<ShouldComputeInputPris>true</ShouldComputeInputPris>
dalam file proyek untuk memastikan sumber daya tersebut disertakan. - Mengklik chevron yang
NavigationViewItem
tidak lagi diperluas atau diciutkan dengan benar pada satu klik. Mengklik dua kali masih berfungsi, seperti halnya mengklik di tempat lain diNavigationViewItem
.
Perbaikan bug
- Memperbaiki masalah saat
StackPanel
menerapkan penspasian ke item yang diciutkan. Untuk informasi selengkapnya, lihat Masalah GitHub #916. - Memperbaiki masalah dengan kontrol gulir tidak lagi berfungsi setelah menutup jendela aplikasi lain. Untuk informasi selengkapnya, lihat Masalah GitHub #9292 dan #9355.
- Memperbaiki crash saat mengatur
DebugSettings.EnableFrameRateCounter
ke true sebelum bingkai pertama dirender. Untuk informasi selengkapnya, lihat Masalah GitHub #2835. - Memperbaiki potensi kesalahan kompilasi untuk C++ di mana beberapa header tidak menyertakan dependensi yang diperlukan. Perhatikan bahwa perubahan pesanan
#include
mungkin berdampak pada beberapa aplikasi, seperti mungkin menyebabkan kesalahan kompilasi jikaIInspectable
aplikasi menggunakan versi C++/WinRT yang lebih lama dari 2023. Untuk informasi selengkapnya, lihat Masalah GitHub #9014. - Memperbaiki masalah di mana
ElementName
pengikatan tidak berfungsi diItemsRepeater
DataTemplate
dalam . Untuk informasi selengkapnya, lihat Masalah GitHub #560. - Memperbaiki crash saat menjalankan aplikasi di bawah Visual Studio dengan toolbar dalam aplikasi diaktifkan. Visual Studio 17.8 Pratinjau 2 atau yang lebih baru diperlukan untuk sepenuhnya mendapatkan perbaikan. Untuk informasi selengkapnya, lihat Masalah GitHub #8806.
- Memperbaiki masalah di mana
AnnotatedScrollbar
terkadang dapat crash saat menggulir dengan cepat. - Memperbaiki masalah di mana teks menu terkadang akan terpotong.
- Memperbaiki masalah di mana tips mengajar tidak menerima fokus yang tepat. Untuk informasi selengkapnya, lihat Masalah GitHub #3257.
- Memperbaiki masalah yang merusak aplikasi saat mengatur
TailVisibility
keTeachingTip
Ciutkan saat startup. Untuk informasi selengkapnya, lihat Masalah GitHub #8731. - Memperbaiki masalah tentang bagaimana file PRI ditangani saat menggunakan pustaka. Untuk informasi selengkapnya, lihat Masalah GitHub #8857.
- Memperbaiki masalah dari rilis 1.5-experimental2 di mana DLL proyeksi tidak dihasilkan. Untuk informasi selengkapnya, lihat Masalah GitHub #4152.
- Memperbaiki masalah di mana tombol elipsis pada popup
RichEditBox
pemformatan teks tidak menampilkan daftar tindakan dengan benar. Untuk informasi selengkapnya, lihat Masalah GitHub #9140. - Memperbaiki masalah saat
ListView
tidak menangani akselerator keyboard dengan benar. Untuk informasi selengkapnya, lihat Masalah GitHub #8063. - Memperbaiki masalah pelanggaran akses dengan menggunakan
AccessKey
untuk menutup jendela. Untuk informasi selengkapnya, lihat Masalah GitHub #8648. - Memperbaiki crash saat menggunakan
AccessKey
untuk menutup jendela. Untuk informasi selengkapnya, lihat Masalah GitHub #9002. - Memperbaiki masalah yang memengaruhi perataan teks dalam
MenuFlyoutItem
dalamMenuBar
. Untuk informasi selengkapnya, lihat Masalah GitHub #8755. - Memperbaiki masalah di mana teks yang disorot tidak akan tetap disorot saat klik kanan. Untuk informasi selengkapnya, lihat Masalah GitHub #1801.
- Memperbaiki masalah yang menyebabkan jendela tidak aktif mengalami crash pada aplikasi saat ditutup. Untuk informasi selengkapnya, lihat Masalah GitHub #8913.
- Memperbaiki masalah yang dapat menggantung aplikasi saat menggulir dengan tombol mouse tengah dan mengklik kiri segera setelahnya. Untuk informasi selengkapnya, lihat Masalah GitHub #9233.
- Memperbaiki masalah yang menyebabkan aplikasi mengalami crash saat startup saat menggunakan kustom
NavigationViewItem
. Untuk informasi selengkapnya, lihat Masalah GitHub #8814. - Memperbaiki
NavigationView
masalah di mana tombol elipsis akan salah menghasilkan kesalahan. Untuk informasi selengkapnya, lihat Masalah GitHub #8380. - Memperbaiki masalah di mana
SystemBackdrop
tidak akan dirender dengan benar di aplikasi multi-jendela. Untuk informasi selengkapnya, lihat Masalah GitHub #8423. - Memperbaiki masalah duplikasi saat menyisipkan ke awal
ObservableCollection
. Untuk informasi selengkapnya, lihat Masalah GitHub #8370.
Versi 1.4
Versi 1.4.5 (1.4.240211001)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.4.
- Memperbaiki masalah yang dapat menggantung aplikasi saat mengklik tombol mouse saat menggulir dengan roda mouse. Untuk informasi selengkapnya, lihat Masalah GitHub #9233.
- Memperbaiki masalah dengan aset duplikat saat mereferensikan rantai paket NuGet. Untuk informasi selengkapnya, lihat Masalah GitHub #8857.
- Memperbaiki beberapa
BreadcrumbBar
masalah termasuk kebocoran memori, crash saat menu elipsis kosong, dan menu elipsis salah dibatasi di dalam jendela. - Memperbaiki potensi crash saat dimatikan saat merilis sumber daya grafis.
Versi 1.4.4 (1.4.231219000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.4.
- Memperbaiki masalah keamanan diagnostik WinUI 3.
- Memperbaiki masalah input di mana kotak kata sandi tidak menampilkan keyboard di layar saat diaktifkan melalui sentuhan. Untuk informasi selengkapnya, lihat Masalah GitHub #8946.
- Memperbaiki masalah yang menyebabkan
Microsoft.UI.Xaml.Controls.dll
ukuran file tumbuh secara tak terduga. - Memperbaiki
CommandBarFlyout
masalah yang dapat menyebabkan crash saat mengatur fokus. - Dukungan SDK Aplikasi Windows yang diperbarui untuk penanganan aset khusus RID .NET 8.
- Memperbaiki masalah yang menyebabkan beberapa swapchain diposisikan atau direntangkan dengan tidak benar.
Versi 1.4.3 (1.4.231115000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.4.
- Memperbaiki masalah di mana menu dapat muncul tanpa latar belakang untuk waktu yang singkat.
- Memperbaiki crash yang mungkin terjadi dalam skenario multi-monitor tertentu.
- Memperbaiki masalah di mana menu konteks dapat muncul di luar layar.
- Memperbaiki masalah dengan gaya Jendela dan memaksimalkan perilaku. Untuk informasi selengkapnya, lihat Masalah GitHub #8996.
- Memperbaiki masalah dengan Kepulauan di mana fokus dapat secara tak terduga diambil dari kontrol lain.
- Memperbaiki masalah dengan urutan tab pada
NavigationView
. - Memperbaiki masalah penyajian di mana bilah putih mungkin terlihat di bagian atas bilah judul. Untuk informasi selengkapnya, lihat Masalah GitHub #8947.
- Berbagai perbaikan performa.
Versi 1.4.2 (1.4.231008000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.4.
- Memperbaiki masalah crash di explorer.exe yang disebabkan oleh memori dan alokasi objek yang berlebihan.
- Memperbaiki masalah interaksi bilah judul yang mencegah tombol kembali berfungsi dengan baik.
- Memperbaiki masalah yang menyebabkan peringatan dihasilkan untuk file sumber yang disertakan beberapa kali.
- Memperbaiki masalah yang memengaruhi performa menu konteks.
- Memperbaiki masalah pintasan .lnk yang membuat target .exe selalu menunjuk ke lokasi yang sama untuk paket di folder WindowsApps.
- Memperbaiki masalah DWriteCore yang memengaruhi penyajian teks Indic yang tepat dalam font tertentu.
- Memperbaiki masalah dalam Tampilan Daftar yang mencegah navigasi keyboard yang tepat ke dan dari item terpilih berlapis dengan Tab/Shift + Tab.
- Memperbaiki masalah yang melanggar pengguliran item ComboBox dengan menyentuh setelah memperluas ComboBox untuk kedua kalinya. Untuk informasi selengkapnya, lihat Masalah GitHub #8831.
- Memperbaiki masalah di mana paket WinAppSDK tidak menyertakan sumber daya WinUI yang dilokalkan untuk beberapa bahasa.
- Memperbaiki ketidakkonsistensian antara bagaimana File Explorer dan XAML menampilkan bahasa pilihan pengguna.
- Memperbaiki masalah pengerjaan di File Explorer yang menyebabkan garis tipis ditampilkan di bawah tab aktif.
- Memperbaiki masalah di mana beberapa akselerator keyboard yang disediakan kerangka kerja tidak dilokalkan dengan benar. Untuk informasi selengkapnya, lihat Masalah GitHub #2023.
- Memperbaiki masalah dengan kontrol RepeatButton yang berulang kali digulir saat diketuk.
- Memperbaiki penginstal WinAppSDK .exe untuk memiliki info versi sumber daya yang tepat.
Versi 1.4.1 (1.4.230913002)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.4.
- Memperbaiki masalah performa untuk meningkatkan waktu ke bingkai pertama.
- Memperbaiki masalah di mana menu tidak menghormati
RequestedTheme
. Misalnya, dimungkinkan bagi masalah ini untuk mengarah ke teks putih pada latar belakang putih. Untuk informasi selengkapnya, lihat Masalah GitHub #8756. - Memperbaiki masalah yang menyebabkan latar belakang akrilik terkadang menjadi sepenuhnya transparan di beberapa menu.
- Memperbaiki masalah di mana XAML terkadang menyebabkan Windows tidak perlu mengecat ulang wallpaper desktop.
- Memperbaiki dukungan untuk dan
TabNavigation = Cycle
untukTabNavigation = Local
ListView
danGridView
, yang sekarang memungkinkan navigasi antara header dan item dengan TAB selain tombol panah. - Memperbaiki beberapa pengecualian yang berisik saat menutup tipsalat. Untuk informasi selengkapnya, lihat Masalah GitHub #8699.
Versi 1.4
Bagian berikut menjelaskan fitur baru dan yang diperbarui serta masalah yang diketahui untuk versi 1.4.
Di aplikasi SDK Aplikasi Windows 1.3 yang ada, Anda dapat memperbarui paket Nuget anda ke 1.4.230822000 (lihat bagian Memperbarui paket di Menginstal dan mengelola paket di Visual Studio menggunakan NuGet Package Manager).
Untuk runtime dan MSIX yang diperbarui, lihat Unduhan untuk SDK Aplikasi Windows.
Bilah judul kustom + Penggabungan bilah judul AppWindow
Titlebar kustom WinUI 3 menggunakan implementasi titlebar AppWindow, bersama dengan API NonClientInputPointerSource, di bawah kap di SDK Aplikasi Windows 1.4. Akibatnya, kedua implementasi titlebar sekarang berperilaku sama dengan fitur dan batasan yang sama. Ini sepenuhnya kompatibel mundur dalam semua kasus yang didukung - aplikasi apa pun dengan titlebar yang ditentukan khusus akan berperilaku seperti sebelumnya. Tapi, sekarang lebih mudah bagi pengembang WinUI 3 yang mungkin baru menggunakan titlebar kustom untuk memahami dan menggunakannya dengan memanfaatkan fitur baru ini:
- Skenario default yang lebih baik di mana pengembang tidak menentukan elemen titlebar secara khusus (menggantikan titlebar fallback dari WinUI 2)
- Wilayah seret yang berbeda di bilah judul, memungkinkan Anda membuat beberapa wilayah seret dan menempatkan kontrol yang dapat diklik di bagian mana pun dari area non-klien (area bilah judul)
- Wilayah yang dapat diseret di seluruh aplikasi yang dapat diletakkan di mana saja di aplikasi atau membuat seluruh aplikasi dapat diseret
- Dukungan tema yang lebih baik yang menggantikan tema berbasis sumber daya
- Karena wilayah seret transparan, wilayah tersebut mengikuti tema aplikasi setiap saat
- Kustomisasi lainnya: sembunyikan tombol min, maks, dan tutup; tempatkan ikon sistem di bilah judul; atau memiliki wilayah yang berbeda bertindak sebagai tombol keterangan yang menerima respons NCHITTEST
- Lebih banyak kebebasan pengembang yang memungkinkan Anda untuk mencampur dan mencocokkan dengan API titlebar AppWindow, seperti menggunakan API WinUI 3 tingkat lebih tinggi untuk sebagian besar skenario tetapi dengan API AppWindow dicampur untuk kontrol tingkat bawah
Pembaruan widget
Tiga antarmuka baru telah ditambahkan bagi Penyedia Widget untuk mengimplementasikan: IWidgetProvider2
, , IWidgetProviderAnalytics
dan IWidgetProviderErrors
. IWidgetProvider2
memungkinkan penyedia untuk menanggapi tindakan Kustomisasi yang dipanggil oleh pengguna, yang identik dengan apa yang tersedia untuk Widget pihak ke-1. Antarmuka IWidgetProviderAnalytics
dan IWidgetProviderErrors
digunakan oleh penyedia untuk mengumpulkan telemetri untuk widget mereka; peristiwa analitik dan kegagalan tentang widget dikomunikasikan ke masing-masing penyedia widget. Kelas WidgetCustomizationRequestedArgs
, WidgetAnalyticsInfoReportedArgs
, dan WidgetErrorInfoReportedArgs
digunakan untuk mengomunikasikan informasi yang relevan untuk mendukung fungsionalitas baru.
Kepulauan XAML tidak lagi bereksperimen
Kepulauan XAML dan platform ContentIslands yang mendasarinya tidak lagi bereksperimen.
- Saat ini Kepulauan XAML hanya diuji untuk digunakan di aplikasi C++. Rilis ini tidak termasuk elemen pembungkus yang nyaman untuk digunakan dalam WPF atau WinForms.
DesktopWindowXamlSource
dan jenis terkait telah ditambahkan di namespace Microsoft.UI.Xaml.Hosting untuk Kepulauan XAML.XamlRoot.ContentIslandEnvironment
ditambahkan untuk membantu mengakses informasi Pulau yang mendasar untuk elemen .- Banyak jenis baru telah diperkenalkan di namespace Microsoft.UI.Content dan namespace Microsoft.UI.Input sebagai dukungan yang mendasari untuk Kepulauan XAML atau untuk menggunakan fungsionalitas ContentIslands ini tanpa XAML.
- Namespace layanan baru
DragDropManager
(plus jenis terkait) telah ditambahkan di namespace Microsoft.UI.Input.DragDrop untuk skenario Island.
ItemTampilan
Kami memperkenalkan kontrol daftar baru yang disebut ItemsView
dan kelas konkret ItemContainer
yang sesuai. ItemContainer
adalah kontainer ringan dengan status dan visual pilihan bawaan, yang dapat dengan mudah membungkus konten yang diinginkan dan digunakan dengan ItemsView
untuk skenario kontrol koleksi.
- Kontrol baru
ItemsView
menampilkan pengumpulan data.ItemsView
miripListView
dengan kontrol danGridView
, tetapi dibangun menggunakanItemsRepeater
komponen , ,ScrollView
ItemContainer
danItemCollectionTransitionProvider
. Ini menawarkan kemampuan unik untuk mencolokkan kustomLayout
atauItemCollectionTransitionProvider
implementasi. Keuntungan utama lainnya adalah kemampuan untuk mengalihkan tata letak dengan cepat sambil mempertahankan pilihan item. Kontrol dalamScrollView
juga menawarkan fitur yang tidak tersedia dalamGridView
ListView
/ScrollViewer
kontrol seperti kemampuan untuk mengontrol animasi selama gulungan terprogram.- Properti baru
ItemTransitionProvider
padaItemsRepeater
(dan kontrol baruItemsView
) memungkinkan Anda menentukanItemCollectionTransitionProvider
objek untuk mengontrol animasi transisi pada kontrol tersebut. MetodeCreateDefaultItemTransitionProvider
juga telah ditambahkan keLayout
, yang memungkinkan objek tata letak untuk menyediakan transisi fallback untuk menyertainya jika Anda tidak menyediakannya secara eksplisit padaItemsView
kontrol. - Properti baru
IndexBasedLayoutOrientation
tempatLayout
orientasi tata letak, jika ada, item didasarkan pada indeksnya dalam kumpulan sumber. Nilai defaultnya adalahIndexBasedLayoutOrientation.None
. Tata letak kustom mengatur properti ini dengan memanggil metode baru (dilindungi).SetIndexBasedLayoutOrientation
- Properti baru
VisibleRect
padaVirtualizingLayoutContext
mendapatkan persegi panjang viewport yang terlihat dalam yangFrameworkElement
terkait denganLayout
. Metode virtualVirtualizingLayoutContext.VisibleRectCore
yang dilindungi dapat ditimpa untuk memberikan nilai yang akan dikembalikan dariVisibleRect
properti .
- Properti baru
- Kelas baru
LinedFlowLayout
biasanya digunakan untuk menjabarkan itemItemsView
kontrol koleksi. Ini sangat berguna untuk menampilkan koleksi gambar. Itu melakukannya dengan meletakkannya dari kiri ke kanan, dan atas ke bawah, dalam garis tinggi yang sama. Gambar mengisi garis horizontal lalu membungkus ke baris berikutnya. Gambar dapat dipotong di tepi kiri dan kanan agar pas ke dalam garis. Mereka juga dapat diperluas secara horizontal dan dipangkas di tepi atas dan bawah untuk mengisi garis ketika mode peregangan digunakan.
Fitur baru dari seluruh WinAppSDK
- Kelas baru
ThemeSettings
yang memungkinkan aplikasi Win32 WinRT mendeteksi kapan pengaturan Kontras Tinggi sistem telah berubah, mirip dengan kelas Aksesibilitas UWP Pengaturan. Lihat Spesifikasi API Tema Pengaturan di GitHub untuk informasi selengkapnya. AccessKeyManager.EnterDisplayMode
adalah metode baru untuk menampilkan kunci akses untuk elemen terfokus saat ini dari akar yang disediakan. Tombol akses berada dalam "mode tampilan" saat menampilkan tip tombol untuk memanggil perintah, seperti menekan tombol Alt di Paint untuk menampilkan tombol apa yang sesuai dengan kontrol apa. Metode ini memungkinkan untuk memasukkan mode tampilan secara terprogram.Application.ResourceManagerRequested
menyediakan mekanisme untuk menyediakan yang berbedaIResourceManager
untuk mengatasi URI sumber daya untuk skenario saat defaultResourceManager
tidak akan berfungsi. Untuk informasi selengkapnya, lihat spesifikasi API Application.ResourceManagerRequested di GitHub.- Versi WebView2 SDK diperbarui dari 1661.34 ke 1823.32.
Popup/FlyoutBase.IsConstrainedToRootBounds = false
sekarang didukung, memungkinkan popup/flyout untuk meluas di luar batas jendela induk. PropertiSystemBackdrop
telah ditambahkan ke jenis ini untuk mendukung akrilik dalam popup yang tidak dibatasi ini. Menu secara default gunakan ini untuk memiliki akrilik.Closed
,FrameworkClosed
, danIsClosed
telah ditambahkan keDesktopAcrylicController
danMicaController
untuk meningkatkan penanganan selama pematian objek/utas.DesktopAcrylicController.Kind
sekarang dapat diatur untuk memilih antara beberapa penampilan akrilik standar.DispatcherQueue
memiliki beberapa peristiwa dan pembantu baru untuk memfasilitasi penonaktifan yang lebih terorganisir dan untuk aplikasi yang menggunakan Kepulauan untuk menjalankan perulangan peristiwa yang didukung standar dengan mudah.InputNonClientPointerSource
di namespace Microsoft.UI.Input dapat digunakan untuk skenario titlebar kustom untuk menentukan wilayah area non-klien. Kode dapat mendaftar untuk peristiwa yang sesuai seperti arahkan kumparan dan mengeklik peristiwa di wilayah ini.AppWindow
memiliki beberapa pembantu baru untuk mendapatkan dan mengaitkan denganDispatcherQueue
.- Peristiwa baru
TreeView.SelectionChanged
memungkinkan pengembang merespons ketika pengguna atau kode di belakang mengubah kumpulan simpul yang dipilih dalamTreeView
kontrol. - Kontrol baru
ScrollView
menyediakan alternatif baru untukScrollViewer
. Kontrol baru ini sangat selaras dalam perilaku dan API dengan kontrol yang adaScrollViewer
, tetapi didasarkan padaInteractionTracker
, memiliki fitur baru seperti perubahan tampilan berbasis animasi, dan juga dirancang untuk memastikan fungsionalitasItemsRepeater
penuh . Lihat ScrollViewer yang lebih fleksibel · Masalah #108 · microsoft/microsoft-ui-xaml (github.com) untuk detail selengkapnya. Berbagai jenis baru, termasukScrollPresenter
, adalah bagian dari model keseluruhanScrollView
. - Kontrol baru
AnnotatedScrollBar
memperluas fungsionalitas bilah gulir reguler dengan menyediakan cara mudah untuk menavigasi melalui kumpulan item yang besar. Ini dicapai melalui rel yang dapat diklik dengan label yang bertindak sebagai penanda. Ini juga memungkinkan pemahaman yang lebih terperinci tentang konten yang dapat digulir dengan menampilkan tipsalat saat melayang di atas rel yang dapat diklik.
Masalah umum
- Saat menggunakan
ExtendsContentIntoTitleBar = true
, klik di sudut kiri atas jendela secara default selalu menampilkan menu jendela sistem (Minimalkan/Tutup/dll.) daripada membiarkan input pointer masuk ke konten jendela. Ini, misalnya, berarti bahwa tombol Kembali di area bilah judul tersebut tidak akan berfungsi. Solusi untuk masalah ini adalah mengaturAppWindow.TitleBar.IconShowOptions = Microsoft.UI.Windowing.IconShowOptions.HideIconAndSystemMenu
appWindow Jendela. - Ada beberapa pengecualian baru yang dapat dilanjutkan saat menyembunyikan
ShouldConstrainToRootBounds="False"
popup/flyout. Itu termasuk menyembunyikan tipsalat, seperti yang dilaporkan di sini: Mengabaikan tipsalat melemparkan 4 pengecualian asli · Masalah #8699 · microsoft/microsoft-ui-xaml (github.com) - Dalam 1.4, tombol keterangan min/maks/tutup untuk
ExtendsContentIntoTitleBar = true
sekarang digambar oleh AppWindow daripada XAML. Ini secara desain, tetapi dapat memengaruhi aplikasi yang mengesampingkan gaya internal XAML untuk menyembunyikan atau melakukan penyesuaian ekstra tombol-tombol ini, seperti dalam laporan ini: Tidak dapat menyembunyikan tombol keterangan di titlebar · Masalah #8705 · microsoft/microsoft-ui-xaml (github.com) - Ada perubahan mencolok di .NET 8 terhadap caranya menangani grafik pengidentifikasi runtime: [Perubahan yang melanggar]: Proyek yang menargetkan .NET 8 dan yang lebih tinggi secara default akan menggunakan grafik RID portabel yang lebih kecil. · Masalah #36527 · dotnet/docs (github.com). Karena masalah ini dan karena .NET 8 belum dirilis secara resmi, SDK Aplikasi Windows 1.4 tidak secara resmi mendukung .NET 8. Namun, jika Anda masih ingin menargetkan versi pra-rilis .NET 8 dengan versi App SDK ini, kami sarankan langkah-langkah berikut:
- Mengatur UseRidGraph ke true disarankan. Anda juga harus memperbarui properti dalam
.csproj
file ke<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
, serta memperbarui setiapPropeties\*pubxml
file untuk beralih dariwin10
kewin
<RuntimeIdentifier>
di properti (misalnya,<RuntimeIdentifier>win-x86</RuntimeIdentifier>
).<RuntimeIdentifiers>
- Mengatur UseRidGraph ke true disarankan. Anda juga harus memperbarui properti dalam
- Dengan SDK Aplikasi Windows 1.4, target
GenerateDeploymentManagerCS
diMicrosoft.WindowsAppSDK.DeploymentManager.CS.targets
diganti namanya menjadiGenerateBootstrapCS
. MenuFlyout
latar belakang tidak menggunakan tema yang diminta aplikasi:
Perbaikan bug
- Memperbaiki masalah saat memanggil
Microsoft.Windows.AppLifecycle.AppInstance.Restart("")
API menyebabkan aplikasi yang tidak dikemas mengalami crash. Untuk informasi selengkapnya, lihat Masalah GitHub #2792. - Memperbaiki masalah crash penginstal yang diperkenalkan dalam 1.4-eksperimental1. Untuk informasi selengkapnya, lihat Masalah GitHub #3760.
- Memperbaiki masalah di mana coretan teks tidak dihapus dengan benar dalam TextBlock. Untuk informasi selengkapnya, lihat Masalah GitHub #1093.
- Memperbaiki masalah yang menyebabkan navigasi Shift + Tab yang salah di Panel dengan TabFocusNavigation diatur ke "Sekali." Untuk informasi selengkapnya, lihat Masalah GitHub #1363.
- Memperbaiki masalah di C++/WinRT yang mencegah
{x:Bind}
bekerja dengan baik dengan properti kontrol XAML bernama. Untuk informasi selengkapnya, lihat Masalah GitHub #2721. - Memperbaiki masalah AccessViolation runtime di aplikasi WinUI Desktop yang disebabkan oleh pengaturan
DebugSettings.EnableFrameRateCounter = true
. Untuk informasi selengkapnya, lihat Masalah GitHub #2835. - Memperbaiki masalah saat
XamlTypeInfo.g.cpp
tidak menyertakan header yang diperlukan. Untuk informasi selengkapnya, lihat Masalah GitHub #4907. - Memperbaiki masalah crash yang disebabkan oleh input multi-sentuhan dan mouse secara bersamaan. Untuk informasi selengkapnya, lihat Masalah GitHub #7622.
- Memperbaiki masalah yang mencegah jendela aplikasi WinUI 3 aktif menggulir ketika pengaturan sistem untuk menonaktifkan pengguliran jendela tidak aktif pada mouse over berlaku. Untuk informasi selengkapnya, lihat Masalah GitHub #8764.
- Memperbaiki crash saat mencoba subkelas
MediaPlayerElement
. - Memperbaiki beberapa masalah crash dan kebocoran memori di
TreeView
. - Memperbaiki masalah hang aplikasi yang dapat terjadi saat menggunakan keyboard untuk menavigasi di
RadioButtons
. - Memperbaiki crash saat menggunakan keyboard untuk menavigasi dalam
PipsPager
. - Memperbaiki konten WebView2 untuk diskalakan dengan pengaturan Aksesibilitas "Ukuran teks" di aplikasi Pengaturan.
- Memperbaiki crash yang dapat terjadi ketika animasi berjalan ketika tampilan dimatikan.
- Memperbaiki masalah performa yang diperkenalkan dalam 1,3 yang menambahkan overhead ~10% ke tata letak/render pertama.
Versi 1.3
Versi 1.3.3 (1.3.230724000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.3.
- Memperbaiki masalah di mana mouse terkadang akan berhenti berfungsi ketika kotak dialog ditutup.
- Memperbaiki masalah penyebaran yang mencegah aplikasi diinstal karena ketidakcocokan versi paket pada sistem. Untuk informasi selengkapnya, lihat Masalah GitHub #3740.
- Memperbaiki masalah yang memengaruhi pemosisian menu konteks di SDK Aplikasi Windows 1.3.
- Memperbaiki masalah yang menyebabkan beberapa aplikasi WinUI3, dalam beberapa situasi, mengalami crash saat aplikasi ditutup karena XAML mematikan dirinya terlalu dini.
- Memperbaiki masalah di mana ikon font tidak mencerminkan dengan benar dalam bahasa kanan-ke-kiri. Untuk informasi selengkapnya, lihat Masalah GitHub #7661.
- Memperbaiki masalah yang menyebabkan aplikasi mengalami crash saat pematian saat sumber daya dicabik-cabik dalam urutan yang buruk. Untuk informasi selengkapnya, lihat Masalah GitHub #7924.
Versi 1.3.2 (1.3.230602002)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.3.
- Memperbaiki crash saat mengatur Kursor Terproteksi.
- Memperbaiki masalah performa di XamlMetadataProvider selama pengaktifan aplikasi. Untuk informasi selengkapnya, lihat Masalah GitHub #8281.
- Memperbaiki masalah dengan hyperlink dan menyentuh RichTextBlock. Untuk informasi selengkapnya, lihat Masalah GitHub #6513.
- Memperbaiki masalah dengan pengguliran dan touchpad di WebView2. Untuk informasi selengkapnya, lihat Masalah GitHub #7772.
- Memperbaiki masalah saat pembaruan SDK Aplikasi Windows terkadang memerlukan hidupkan ulang Visual Studio. Untuk informasi selengkapnya, lihat Masalah GitHub #3554.
- Memperbaiki pengecualian yang bising saat dimatikan saat berjalan dalam debugger.
Versi 1.3.1 (1.3.230502000)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.3.
- Memperbaiki masalah yang menyebabkan aplikasi mengalami crash saat mengatur SystemBackdrop jika Konten null. Untuk informasi selengkapnya, lihat Masalah GitHub #8416.
- Memperbaiki masalah yang menyebabkan aplikasi mengalami crash saat mengatur Judul Jendela di XAML, kemampuan baru yang ditambahkan dalam 1.3.0. Untuk informasi selengkapnya, lihat Masalah GitHub #3689.
- Memperbaiki masalah di mana jendela salah mengambil fokus saat kontennya berubah.
- Memperbaiki masalah dalam membuat proyek C++ dengan templat proyek WinAppSDK 1.3.
- Templat yang diperbarui di Visual Studio Marketplace
Versi 1.3
Bagian berikut menjelaskan fitur baru dan yang diperbarui serta masalah yang diketahui untuk versi 1.3.
Di aplikasi SDK Aplikasi Windows 1.2 yang ada, Anda dapat memperbarui paket Nuget ke 1.3.230331000 (lihat bagian Memperbarui paket di Menginstal dan mengelola paket di Visual Studio menggunakan Manajer Paket NuGet).
Untuk runtime dan MSIX yang diperbarui, lihat Unduhan untuk SDK Aplikasi Windows.
API Backdrop XAML
Dengan properti bawaan XAML Window, latar belakang Mica & Background Acrylic sekarang lebih mudah digunakan di aplikasi WinUI 3 Anda. Lihat dokumen System Backdrop dan Mica Backdrop API untuk informasi selengkapnya tentang properti Xaml Backdrop.
public MainWindow()
{
this.InitializeComponent();
this.SystemBackdrop = new MicaBackdrop();
}
Window.AppWindow
Mengganti beberapa baris kode boilerplate, Anda sekarang dapat menggunakan API AppWindow langsung dari Jendela melalui Window.AppWindow
.
Fitur baru dari seluruh WinAppSDK
ApplicationModel.DynamicDependency
:PackageDependency.PackageGraphRevisionId
yang menggantikan MddGetGenerationId yang tidak digunakan lagi.- Pengelola Lingkungan:
EnvironmentManager.AreChangesTracked
untuk memberi tahu Anda apakah perubahan pada pengelola lingkungan dapat dilacak di aplikasi Anda. - Peristiwa baru, Debug Pengaturan. XamlResourceReferenceFailed sekarang dinaikkan ketika pencarian Statis/ThemeResource yang direferensikan tidak dapat diselesaikan. Kejadian ini memberikan akses ke jejak yang merinci tempat kerangka kerja mencari kunci tersebut untuk memungkinkan Anda men-debug kegagalan pencarian Statis & ThemeResource dengan lebih baik. Untuk informasi selengkapnya, lihat spesifikasi API kegagalan pencarian referensi sumber daya XAML Pelacakan di GitHub.
Pembaruan lainnya
- Lihat tonggak WinAppSDK 1.3 kami di WinAppSDK GitHub untuk masalah tambahan yang dibahas dalam rilis ini.
- Lihat tonggak WinUI 3 di WinAppSDK 1.3 kami di GitHub microsoft-ui-xaml untuk masalah tambahan yang ditangani dalam rilis ini.
- Dengan VSIX eksperimental terbaru, Anda sekarang dapat mengonversi aplikasi antara unpackaged dan dikemas melalui menu Visual Studio alih-alih di file proyek Anda.
Masalah yang diketahui
Karena perubahan terbaru pada pengkompilasi xaml, proyek yang ada yang ditingkatkan ke 1.3 mungkin mengalami kesalahan build seperti berikut ini dalam Visual Studio:
> C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.3.230331000**\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(537,17): error MSB4064: The "PrecompiledHeaderFile" parameter is not supported by the "CompileXaml" task loaded from assembly: Microsoft.UI.Xaml.Markup.Compiler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b from the path: C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.2.230118.102**\tools\net472\Microsoft.UI.Xaml.Markup.Compiler.dll. Verify that the parameter exists on the task, the <UsingTask> points to the correct assembly, and it is a settable public instance property.
Ini disebabkan oleh Visual Studio menggunakan dll tugas kompilator xaml cache dari 1.2, tetapi mendorongnya dengan logika MSBuild yang tidak kompatibel dari 1.3, seperti yang terlihat pada teks kesalahan di atas. Solusinya adalah mematikan Visual Studio, memulai ulang, dan memuat ulang solusi.
Versi 1.2
Versi 1.2.5 (1.2.230313.1)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.2.
- Memperbaiki masalah yang menyebabkan aplikasi mengalami crash selama pematian Komposisi.
- Memperbaiki masalah yang menyebabkan aplikasi terus menjalankan animasi bahkan saat layar mati.
- Memperbaiki masalah yang menyebabkan input mouse dan sentuhan gagal di WebView2 saat input mouse dan keyboard terjadi secara bersamaan. Untuk informasi selengkapnya, lihat Masalah GitHub #3266.
Versi 1.2.4 (1.2.230217.4)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.2.
- Memperbaiki masalah yang menyebabkan aplikasi mandiri tidak dapat mengatur Pengaturan UAC. Untuk informasi selengkapnya, lihat Masalah GitHub #3376.
- Memperbaiki masalah yang menyebabkan pemberitahuan push mengembalikan waktu Kedaluwarsa yang tidak akurat dengan
PushNotificationChannel::ExpirationTime
. Untuk informasi selengkapnya, lihat Masalah GitHub #3300. - Memperbaiki masalah yang menyebabkan angka negatif dianggap "tidak valid" saat meneruskan ganda sebagai parameter ke dalam fungsi x:Bind.
- Beberapa perbaikan untuk memperbarui WinUI VSIX. Pembaruan ini termasuk menyederhanakan dipAwareness templat proyek di app.manifest, menghapus templat UWP, memperbarui file sumber daya yang dilokalkan, menambahkan id telepon untuk membuka blokir pengiriman penyimpanan, dan menghapus pemberitahuan dan lisensi hak cipta. Untuk informasi selengkapnya lihat Masalah GitHub #5659, #3205, #3323, #3322, #3143.
Versi 1.2.3 (1.2.230118.102)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.2.
- Memperbaiki masalah yang menyebabkan aplikasi WinUI 3 mengalami crash saat beberapa jendela ditutup.
- Memperbaiki masalah yang menyebabkan crash pada aplikasi ditutup saat dua atau beberapa referensi ke antarmuka ThreadPoolTimer dipanggil. Untuk informasi selengkapnya, lihat Masalah GitHub #7260 dan #7239.
- Memperbaiki masalah yang menyebabkan semua aplikasi MSIX proyek tunggal berjalan sebagai kepercayaan penuh. Untuk informasi selengkapnya, lihat Masalah GitHub #7766.
Versi 1.2.2 (1.2.221209.1)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.2.
- Memperbaiki masalah yang menyebabkan paket Penyimpanan dan beban samping (misalnya dari penginstal, NuGet, dan bootstrapper) gagal diinstal jika yang lain sudah diinstal. Untuk informasi selengkapnya, lihat Masalah GitHub #3168.
- Memperbaiki masalah yang menyebabkan hilangnya efek elastisitas dan kurva animasi saat menggulir dengan touchpad. Untuk informasi selengkapnya, lihat Masalah GitHub #7874.
- Memperbaiki masalah di ListView yang menyebabkan kebocoran memori.
- Memperbaiki masalah yang menyebabkan templat Tombol tidak menghormati properti Latar Depan setelah mouse diarahkan. Untuk informasi selengkapnya, lihat Masalah GitHub #7208.
- Memperbaiki masalah yang menyebabkan pengecualian yang tidak diperlukan ketika tidak ada MediaPlaybackItem di MediaElement.
- Memperbaiki masalah yang menyebabkan bingkai putih muncul di MediaPlayerElement pada transisi konten.
- Memperbaiki masalah tambahan yang menyebabkan App.UnhandledException tidak menangkap pengecualian dari utas lain. Untuk informasi selengkapnya, lihat Masalah GitHub #1259 dan #5221.
Versi 1.2.1 (1.2.221116.1)
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.2.
Memperbaiki masalah yang menyebabkan crash saat startup di aplikasi C++ WinUI 3 saat menambahkan kontrol WebView2 atau TextBox. Untuk informasi selengkapnya, lihat Masalah GitHub #7911 & #3117.
Versi 1.2
Bagian berikut menjelaskan fitur baru dan yang diperbarui, batasan, dan masalah yang diketahui untuk 1.2.
Catatan
Visual Studio 2019 dan .NET 5 tidak lagi didukung untuk membangun aplikasi C# (lihat SDK Aplikasi Windows 1.2 pindah ke C# WinRT 2.0). Anda akan memerlukan Visual Studio 2022 dan salah satu versi .NET SDK berikut: 6.0.401 (atau yang lebih baru), 6.0.304, 6.0.109. Saat dirilis, WinAppSDK 1.2 juga akan mendukung .NET 7.
Untuk memperbarui versi .NET SDK Anda, instal versi terbaru Visual Studio 2022 atau kunjungi Unduhan .NET. Saat memperbarui paket NuGet Anda tanpa versi .NET SDK yang diperlukan, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan .NET 6+ dan WinRT.Runtime.dll versi 2.0 atau lebih tinggi.". Untuk memperbarui proyek dari .NET 5.0 ke .NET 6.0, buka file proyek dan ubah "TargetFramework" ke net6.0
dan "Versi OS Target" ke nilai yang sesuai (seperti net6.0-windows10.0.19041.0
).
Widget pihak ketiga di Windows
Papan widget pertama kali diperkenalkan di Windows 11 dan terbatas pada menampilkan widget bawaan. Widget adalah kontainer UI kecil yang menampilkan teks dan grafik di papan widget, dan dikaitkan dengan aplikasi yang diinstal pada perangkat. Dengan SDK Aplikasi Windows, sebagai pengembang pihak ketiga, Anda sekarang dapat membuat widget untuk aplikasi Win32 paket Anda dan mengujinya secara lokal di papan widget Windows 11.
Untuk informasi selengkapnya tentang widget, lihat Gambaran Umum Widget.
Untuk mulai mengembangkan widget untuk aplikasi Anda, lihat dokumen pengembangan penyedia layanan Widget dan dasar-dasar desain Widget untuk prasyarat , panduan, dan praktik terbaik.
Prasyarat untuk rilis ini meliputi:
- Mode pengembang diaktifkan pada komputer pengembangan.
- Mesin pengembangan menjalankan versi Windows dari Dev Channel Windows Insider Preview (WIP) yang lebih besar dari atau sama dengan 25217 dengan papan widget versi 521.20060.1205.0 atau lebih tinggi.
Batasan yang diketahui saat mengembangkan Widget
- Widget pihak ketiga hanya dapat diuji secara lokal pada perangkat yang terdaftar di WIP untuk rilis pratinjau ini.
- Widget hanya dapat dibuat untuk aplikasi Win32 yang di kemas. Widget untuk Progressive Web Apps (PWA) direncanakan didukung sebagai bagian dari Microsoft Edge 108.
DisplayInformation
Aplikasi desktop Windows sekarang dapat mendukung High Dynamic Range (HDR) dan Auto Color Management (ACM) melalui kelas DisplayInformation di WinAppSDK. Kelas DisplayInformation memungkinkan Anda memantau informasi terkait tampilan untuk tampilan aplikasi. Ini termasuk peristiwa untuk memungkinkan klien memantau perubahan dalam tampilan aplikasi yang memengaruhi tampilan mana yang berada, serta perubahan tampilan yang dapat memengaruhi tampilan aplikasi.
WinUI 3
Aplikasi WinUI 3 dapat memutar audio dan video dengan kontrol pemutaran media MediaPlayerElement dan MediaTransportControls. Untuk informasi selengkapnya tentang cara dan waktu penggunaan kontrol media, lihat Pemutar media.
WinUI 3 telah diperbarui dengan kontrol, gaya, dan perilaku terbaru dari WinUI 2.8. Pembaruan ini termasuk penambahan kontrol InfoBadge , peningkatan aksesibilitas dan mode kontras tinggi, serta perbaikan bug di seluruh kontrol. Untuk detail selengkapnya, lihat catatan rilis untuk WinUI 2.7 dan WinUI 2.8.
Masalah yang diperbaiki
- Materi backdrop Akrilik dengan DesktopAcrylicController sekarang didukung di aplikasi Windows 10. Untuk informasi selengkapnya, lihat masalah 7112 di GitHub.
- Memperbaiki berbagai masalah yang menyebabkan perutean App.UnhandledException gagal. Untuk informasi selengkapnya, lihat masalah 5221 di GitHub. Mengenai masalah yang tersisa, solusi didokumenkan pada masalah GitHub berikut dan akan diselesaikan dalam rilis 1.2 mendatang:
- Memperbaiki masalah yang menyebabkan gaya ListView mengalami regresi dan perubahan dari WinAppSDK 1.1. Untuk informasi selengkapnya, lihat masalah 7666 di GitHub.
- Memperbaiki masalah yang menyebabkan warna latar belakang fallback Mica yang salah muncul saat aplikasi tidak aktif. Untuk informasi selengkapnya, lihat masalah 7801 di GitHub.
Batasan yang Diketahui
- Saat membuat proyek WinUI 3 baru dengan Visual Studio 2022 17.4.0, ini akan mereferensikan versi pratinjau WinAppSDK. Gunakan NuGet Package Manager untuk memperbarui referensi ke rilis ini.
- Pengaturan MediaPlayerElement.Source ke URI relatif (ms-appx/ms-resource) gagal di aplikasi yang tidak dikemas. Solusi yang direkomendasikan adalah mengonversi URI ms-appx:/// relatif ke URI file:/// yang diselesaikan sepenuhnya.
Pemangkasan untuk aplikasi yang dikembangkan dengan .NET
Pengembang .NET sekarang dapat menerbitkan aplikasi WinAppSDK yang dipangkas. Dengan CsWinRT 2.0, proyeksi C#/WinRT yang didistribusikan di WinAppSDK sekarang dapat dipangkas. Menerbitkan aplikasi yang dipangkas dapat mengurangi jejak disk aplikasi Anda dengan menghapus kode yang tidak digunakan dari biner yang dapat dipangkas. Aplikasi mungkin juga melihat peningkatan performa startup. Dengan aplikasi Halo Dunia dasar, kami telah melihat peningkatan jejak disk ~80% dan peningkatan performa startup ~7% saat diterbitkan dipangkas. Dengan galeri WinUI, kami telah melihat peningkatan jejak disk ~45%.
Untuk detail selengkapnya tentang cara mengaktifkan pemangkasan, pemangkasan batasan (seperti refleksi terhadap jenis yang dapat dipangkas), dan memangkas peringatan, lihat Memangkas penyebaran mandiri dan dapat dieksekusi. Pengembang harus menguji aplikasi mereka secara menyeluruh setelah pemangkasan untuk memastikan semuanya berfungsi seperti yang diharapkan. Untuk informasi selengkapnya, lihat masalah 2478 di GitHub.
Dukungan untuk Visual Studio Arm64
Pada awal Project Reunion (sekarang WinAppSDK) 0.5, aplikasi yang dikembangkan dengan WinAppSDK dapat berjalan di Arm64. Dimulai dengan Visual Studio 17.3 Preview 2, Anda dapat mengembangkan aplikasi asli dengan WinAppSDK di perangkat Arm64.
Untuk mulai mengembangkan pada perangkat Arm64, lihat Windows di Arm dan Arm64 Visual Studio.
Notifications
AppNotificationBuilder diperkenalkan sebagai alternatif untuk payload XML untuk membuat dan menentukan Pemberitahuan Aplikasi.
Untuk informasi penggunaan, lihat spesifikasi AppNotificationBuilder di GitHub.
Lihat juga Mulai Cepat: Pemberitahuan aplikasi di SDK Aplikasi Windows untuk contoh cara membuat aplikasi Windows desktop yang mengirim dan menerima pemberitahuan aplikasi lokal.
Perubahan mencolok
Untuk pemberitahuan push, saat melakukan panggilan permintaan saluran, aplikasi harus menggunakan ID Objek Azure alih-alih ID Aplikasi Azure. Lihat Mulai Cepat: Pemberitahuan push di SDK Aplikasi Windows untuk detail tentang menemukan ID Objek Azure Anda.
Memperbaiki masalah
PushNotificationManager.IsSupported akan melakukan pemeriksaan untuk mode yang ditinggikan. Ini akan kembali false
jika aplikasi ditingkatkan.
Batasan yang diketahui (Pemberitahuan)
- Di AppNotificationScenario,
Urgent
hanya didukung untuk build Windows 19041 dan yang lebih baru. Anda dapat menggunakan AppNotificationBuilder.IsUrgentScenarioSupported untuk memeriksa apakah fitur tersedia saat runtime. - Di AppNotificationButton,
hint-toolTip
danhint-buttonStyle
hanya didukung untuk build 19041 dan yang lebih baru. Anda dapat menggunakan IsButtonStyleSupported dan IsToolTipSupported untuk memeriksa apakah fitur tersedia saat runtime. - Di MediaPlayerElement, saat digunakan dalam markup XAML untuk aplikasi yang tidak dikemas, properti Sumber tidak dapat diatur dengan URI ms-appx atau ms-resource. Sebagai alternatif, atur Sumber menggunakan URI file, atau atur dari kode.
Windowing
Kustomisasi bilah judul lengkap sekarang tersedia di Windows 10, versi 1809 dan yang lebih baru melalui kelas AppWindowTitleBar. Anda dapat mengatur AppWindowTitleBar.ExtendsContentIntoTitleBar untuk true
memperluas konten ke area bilah judul, dan SetDragRectangles untuk menentukan wilayah seret (selain opsi kustomisasi lainnya).
Jika Anda telah menggunakan properti AppWindowTitleBar.IsCustomizationSupported untuk memeriksa apakah Anda dapat memanggil API AppWindowTitleBar, sekarang kembali true
pada versi SDK Aplikasi Windows Windows 10 yang didukung (1809 dan yang lebih baru).
Batasan yang diketahui (Windowing)
Kustomisasi bilah judul dasar tidak didukung pada Windows 10. Ini termasuk BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor dan IconShowOptions. Jika Anda memanggil properti ini, properti tersebut akan diabaikan secara diam-diam. Semua API AppWindowTitleBar lainnya berfungsi di Windows 10, versi 1809, dan yang lebih baru. Untuk API warna tombol keterangan (antara lain) dan Tinggi, ExtendsContentIntoTitleBar harus diatur ke true
, jika tidak, mereka juga akan diabaikan secara diam-diam.
Kontrol akses
Memperkenalkan fungsi security.accesscontrol.h dengan Fungsi GetSecurityDescriptorForAppContainerNames untuk memudahkan dan menyederhanakan berbagi objek bernama antara proses yang dikemas dan API Win32 umum. Metode ini mengambil daftar Nama Keluarga Paket (PFN) dan masker akses, dan mengembalikan deskriptor keamanan. Untuk informasi selengkapnya, lihat spesifikasi GetSecurityDescriptorForAppContainerNames di GitHub.
Batasan lain dan masalah yang diketahui
Penting
Saat Anda mereferensikan WinAppSDK 1.2 dari proyek, Anda mungkin melihat kesalahan yang mirip dengan: "Paket yang terdeteksi diturunkan: Microsoft.Windows.SDK.BuildTools dari 10.0.22621.1 ke 10.0.22000.194.", yang disebabkan oleh referensi yang tidak kompatibel ke paket dari proyek aplikasi dan paket WinAppSDK. Untuk mengatasinya, Anda dapat memperbarui referensi dalam proyek ke versi Microsoft.Windows.SDK.BuildTools yang lebih baru dan kompatibel.
- Pengujian unit mungkin gagal dengan
REGDB_E_CLASSNOTREG
kesalahan di panel Output pengujian di Visual Studio. Sebagai solusinya, Anda dapat menambahkan<WindowsAppContainer>true</WindowsAppContainer>
ke file proyek Anda. - .NET PublishSingleFile tidak didukung.
- Default bootstrapper dan Undocked RegFree WinRT auto-initializer adalah (sekarang) hanya diatur untuk proyek yang menghasilkan executable (OutputType=Exe atau WinExe). Ini mencegah penambahan penginisialisasi otomatis ke DALAM DLL pustaka kelas dan non-executable lainnya secara default.
- Jika Anda memerlukan penginisialisasi otomatis dalam non-executable (misalnya DLL pengujian yang dimuat oleh executable generik yang tidak menginisialisasi Bootstrapper) Anda dapat secara eksplisit mengaktifkan penginisialisasi otomatis di proyek Anda melalui
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
atau<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
.
- Jika Anda memerlukan penginisialisasi otomatis dalam non-executable (misalnya DLL pengujian yang dimuat oleh executable generik yang tidak menginisialisasi Bootstrapper) Anda dapat secara eksplisit mengaktifkan penginisialisasi otomatis di proyek Anda melalui
- Microsoft.WindowsAppRuntime.Release.Net.dll selalu biner Arm64 dan tidak berfungsi untuk aplikasi x86 dan x64. Saat secara eksplisit memanggil API Bootstrap, jangan gunakan rakitan Microsoft.WindowsAppRuntime.Release.Net.dll. Sebagai solusinya, Anda dapat menyertakan konstanta versi dalam file sumber ini yang didistribusikan dengan paket NuGet: '.. . \include\WindowsAppSDK-VersionInfo.cs' atau gunakan auto-initializer.
Versi 1.1
Rilis terbaru yang tersedia dari silsilah 1.1.x dari saluran stabil SDK Aplikasi Windows adalah versi 1.1.5. 1.1.x mendukung semua fitur saluran yang stabil (lihat bagian Fitur yang tersedia oleh saluran rilis di saluran rilis SDK Aplikasi Windows).
Versi 1.1.5
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.1.
Perbaikan bug
- Memperbaiki masalah di mana Acrylic tidak berfungsi jika Mica diaktifkan. Untuk informasi selengkapnya, lihat masalah 7200 di GitHub.
- Memperbaiki masalah yang menyebabkan aplikasi yang bergantung pada penginstal WindowsAppRuntime (misalnya aplikasi yang tidak dikemas) gagal dijalankan pada komputer Windows 10 ARM64. Untuk informasi selengkapnya, lihat masalah 2564 di GitHub.
Versi 1.1.4
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.1.
Perbaikan bug
- Memperbaiki regresi dari 1.0.x yang menyebabkan kontrol ListView, TreeView, dan 'Daftar' lainnya mengalami crash saat menggulir dengan banyak item. Untuk informasi selengkapnya, lihat masalah 7230 di GitHub.
- Memperbaiki masalah dengan DispatcherQueue yang menyebabkan panggilan balik antrean tidak lagi dipanggil.
- Memperbaiki masalah yang menyebabkan crash aplikasi saat memanggil
DeploymentManager.Initialize
beberapa kali dalam sesi aplikasi yang sama. - Memperbaiki masalah yang menyebabkan aplikasi C# gagal dibangun di Arm64 Visual Studio. Untuk informasi selengkapnya, lihat masalah 7140 di GitHub.
- Memperbaiki crash terputus-terputus dalam kode pencitraan XAML karena penanganan kegagalan yang salah.
- Memperbaiki masalah kebocoran memori saat melampirkan penanganan aktivitas di ItemsRepeater dengan UserControl induk. Untuk informasi selengkapnya, lihat masalah 6123 di GitHub.
- Memperbaiki masalah yang menyebabkan kegagalan build di Visual Studio 17.3 saat proyek aplikasi dikonfigurasi untuk mengaktifkan pembaruan otomatis paketnya saat dimuat samping (yaitu .appinstaller). Untuk informasi selengkapnya, lihat masalah 2773.
- Memperbaiki masalah yang menyebabkan aplikasi paket terdistribusi Store yang memanggil Inisialisasi (perlu untuk Push) untuk menyebutnya secara berlebihan sebagai DeploymentManager::GetStatus dikembalikan
Package Install Needed
ketika paket utama dan singleton sudah diinstal. Hal ini menyebabkan degradasi perf pada peluncuran aplikasi. - Memperbaiki masalah yang menyebabkan pengecualian dalam aplikasi instans tunggal saat peristiwa pembersihan dimaksudkan untuk diabaikan jika tidak dapat dibuka. Untuk informasi selengkapnya, lihat PR di GitHub.
Versi 1.1.3
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.1.
Perbaikan bug
- Memperbaiki serangkaian masalah terkait di mana XAML mengalami crash saat menyertakan progressBar, ProgressRing, PipsPager, PersonPicture, atau kontrol Expander di halaman pertama aplikasi Anda. Untuk informasi selengkapnya, lihat masalah 7164 di GitHub.
- Memperbaiki masalah yang menyebabkan penginstal x64 gagal menginstal runtime SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat masalah 2713 di GitHub.
- Memperbaiki masalah yang menyebabkan WindowsAppRuntime gagal diinstal jika versi runtime yang lebih tinggi diinstal. Untuk informasi selengkapnya, lihat diskusi 2708 di GitHub.
Versi 1.1.2
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.1.
Perbaikan bug
- Memperbaiki masalah saat XAML mengalami crash saat menutup jendela saat dialog terbuka. Untuk informasi selengkapnya lihat masalah 1032 di GitHub.
- Menambahkan
<auto-generated>
tag dalam file C# untuk mencegah peringatan StyleCop. Untuk informasi selengkapnya lihat masalah 4526 di GitHub. - Memperbaiki masalah yang menyebabkan kesalahan pelanggaran akses dan crash saat memanggil MddBootstrapInitialize saat paket kerangka kerja yang cocok tidak diinstal. Untuk informasi selengkapnya, lihat masalah 2592 di GitHub.
- Memperbaiki masalah saat templat item C# WinUI 3 hilang di Visual Studio. Untuk informasi selengkapnya lihat masalah 7148 di GitHub.
- Memperbaiki masalah di mana penginstal WindowsAppRuntime gagal saat dijalankan sebagai pengguna Sistem. Untuk informasi selengkapnya, lihat masalah 2546 di GitHub.
Versi 1.1.1
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.1.
Perbaikan bug
- Memperbaiki masalah yang menyebabkan aplikasi terkadang mengalami crash selama operasi seret dan lepas. Untuk informasi selengkapnya lihat masalah 7002 di GitHub.
- Memperbaiki masalah yang menyebabkan bilah judul menghilang saat mengalihkan AppWindowPresenterKind dari Layar Penuh ke Default.
- Memperbaiki masalah di mana API Bootstrapper seperti
ApiInformation.IsPropertyPresent
danApiInformation.IsMethodPresent
akan menyebabkan pengecualian yang tidak tertangani dalam aplikasi yang tidak dikemas. Untuk informasi selengkapnya, lihat masalah 2382 di GitHub. - Memperbaiki masalah yang menyebabkan aplikasi membeku saat memaksimalkan aplikasi dengan input pena.
Versi 1.1
Bagian berikut menjelaskan fitur baru dan yang diperbarui, batasan, dan masalah yang diketahui untuk 1.1.
Catatan
Untuk pengembang C#, salah satu versi .NET SDK berikut (atau yang lebih baru) diperlukan: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Untuk memperbarui versi .NET SDK Anda, kunjungi Unduhan .NET atau perbarui ke versi terbaru Visual Studio. Tanpa versi .NET SDK yang diperlukan, saat memperbarui paket NuGet Anda, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan WinRT.Runtime.dll versi 1.6 atau yang lebih tinggi.".
Siklus Hidup Aplikasi & Mulai Ulang
Aplikasi sekarang dapat memulai hidupkan ulang eksplisit dengan argumen tertentu &state building off dari RegisterApplicationRestart API yang ada untuk mendaftar dengan OS untuk memulai ulang dalam skenario pembaruan, hang & reboot.
Fitur baru:
- Setiap aplikasi desktop yang dikemas atau tidak dikemas dapat mengakhiri dan memulai ulang sendiri pada perintah, dan memiliki akses ke string baris perintah arbitrer untuk instans yang dimulai ulang menggunakan
AppInstance.Restart()
API.- Ini adalah versi yang diangkat dan sinkron dari API UWP
RequestRestartAsync()
yang memungkinkan memulai ulang dengan argumen dan mengembalikanAppRestartFailureReason
jika hidupkan ulang tidak berhasil. - Lihat dokumen Restart API di GitHub untuk informasi penggunaan & referensi.
- Ini adalah versi yang diangkat dan sinkron dari API UWP
WinUI 3
WinUI 3 adalah kerangka kerja pengalaman pengguna asli (UX) untuk SDK Aplikasi Windows. Rilis ini mencakup fitur baru dari WinAppSDK 1.0 serta beberapa peningkatan stabilitas dari rilis pratinjau 1.0 & 1.1.
Fitur baru:
- Mica dan Background Acrylic sekarang tersedia untuk aplikasi WinUI 3.
- Untuk informasi selengkapnya tentang materi ini, lihat Materi di Windows 11. Lihat kode sampel kami untuk menerapkan Mica di aplikasi C++ di Menggunakan SystemBackdropController dengan WinUI 3 XAML dan di aplikasi C# di GitHub sebagai bagian dari Galeri WinUI 3.
- Pertama kali diperkenalkan dalam 1.0.1, kami telah menstabilkan dan mengaktifkan pembuatan beberapa jendela pada utas yang sama di aplikasi WinUI 3. Lihat masalah 5918 untuk informasi selengkapnya.
Memperbaiki bug:
- Memperbaiki masalah saat menggunakan Mica di mana aplikasi akan mengalami crash saat jendela dibagi rata dengan dua layar. Lihat masalah 7079 di GitHub untuk informasi selengkapnya.
- Memperbaiki masalah yang menyebabkan aplikasi C# dengan WebView2 mengalami crash saat diluncurkan saat C/C++ Runtime (CRT) tidak diinstal dengan meningkatkan WebView2 SDK dari 1020.46 ke 1185.39.
- Memperbaiki masalah yang menyebabkan beberapa sudut bulat menunjukkan gradien ketika harus berwarna solid. Untuk informasi selengkapnya lihat masalah 6076 & masalah 6194 di GitHub.
- Memperbaiki masalah saat gaya yang diperbarui hilang dari generic.xaml.
- Memperbaiki masalah siklus tata letak yang menyebabkan aplikasi mengalami crash saat menggulir ke akhir ListView. Untuk informasi selengkapnya lihat masalah 6218 di GitHub.
- Memperbaiki masalah di mana pengguna tidak dapat menghilangkan elemen saat seret dan letakkan diaktifkan. Untuk informasi selengkapnya lihat masalah 7008 di GitHub.
Batasan yang diketahui:
- Saat menggunakan bilah judul kustom, kontrol keterangan tidak mengubah warna pada perubahan tema.
- XAML mengalami crash saat pengguna menutup jendela saat dialog terbuka.
Penyebaran
Fitur baru:
- Aplikasi paket sekarang dapat memaksa penyebaran paket runtime SDK Aplikasi Windows menggunakan API DeploymentManager.Initialize(DeploymentInitializeOptions) atau menggunakan opsi --force dengan penginstal Windows App Runtime.
- Ada kategori ekstensi fungsional tambahan, UnlockedDEHs, tersedia untuk aplikasi paket. Lihat catatan rilis Pratinjau 1.1 3 untuk detail selengkapnya. Ini mengharuskan paket kerangka kerja SDK Aplikasi Windows diinstal. Lihat Unduhan untuk SDK Aplikasi Windows untuk menginstal runtime.
- Penyebaran mandiri didukung. Lihat gambaran umum penyebaran SDK Aplikasi Windows untuk perbedaan antara penyebaran yang bergantung pada kerangka kerja dan mandiri, dan cara memulai.
- API Bootstrapper yang diperlukan untuk aplikasi yang tidak disebarkan dengan MSIX menyertakan opsi baru untuk meningkatkan kegunaan dan pemecahan masalah. Silakan lihat dokumentasi kami untuk aplikasi C#, API Bootstrapper C# dan untuk aplikasi C++, mddbootstrapheader.h header. Untuk detail selengkapnya, lihat Menggunakan runtime SDK Aplikasi Windows untuk aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas.
Batasan yang diketahui:
- Menjalankan penginstal Windows App Runtime (WindowsAppRuntimeInstall.exe) memerlukan sideloading untuk diaktifkan. Lihat masalah 2469 di GitHub untuk informasi selengkapnya.
- Membuat paket MSIX melalui menu Visual Studio Project dapat merusak Visual Studio dalam beberapa skenario. Masalah ini akan diperbaiki di Visual Studio versi 17.3 Pratinjau 2 dan dilayankan ke 17.2. Jika Anda mengalami masalah ini, Anda dapat mengatasinya dengan membuat MSIX dari baris perintah, beralih ke proyek yang tidak dipaketkan, atau kembali ke SDK Aplikasi Windows 1.0.
- Aplikasi mandiri yang dipaketkan dengan MSIX tidak didukung pada 1809 menyebabkan crash aplikasi saat diluncurkan.
Elevation
Aplikasi sekarang dapat berjalan dengan hak istimewa yang ditingkatkan.
Batasan yang diketahui:
- Dukungan yang ditinggikan memerlukan pembaruan layanan OS berikut:
- Pemberitahuan Aplikasi dan Push untuk aplikasi unpackaged yang ditingkatkan tidak didukung.
- Peningkatan crash aplikasi WinUI 3 saat menyeret elemen selama interaksi seret dan letakkan.
Pengelola Variabel Lingkungan
Environment Variable Manager adalah API baru yang diperkenalkan di SDK Aplikasi Windows 1.1. Environment Variable Manager memungkinkan pengembang untuk mengakses, dan memodifikasi variabel lingkungan dalam proses, pengguna, dan cakupan mesin dari satu permukaan API.
Jika Environment Variable Manager digunakan dari aplikasi yang dipaketkan, semua operasi variabel lingkungan akan direkam. Ketika paket dihapus, semua operasi variabel lingkungan dikembalikan.
Fitur baru:
- Dapatkan dan atur variabel lingkungan dalam proses, pengguna, dan cakupan komputer.
- Variabel lingkungan otomatis kembali saat paket yang menggunakan pengelola variabel lingkungan dihapus.
- Termasuk API tertentu untuk PATH dan PATHEXT.
Batasan yang diketahui:
- Hanya tersedia di Windows 11
MRT Core
MRT Core adalah versi yang disederhanakan dari Sistem Manajemen Sumber Daya Windows modern yang didistribusikan sebagai bagian dari SDK Aplikasi Windows.
Masalah yang diperbaiki:
- Masalah yang menyebabkan sumber daya tidak diindeks secara default ketika file sumber daya ditambahkan menggunakan UI VS diperbaiki di .NET SDK 6.0.300. Jika menggunakan versi .NET SDK yang lebih lama, silakan terus gunakan solusi yang didokumenkan dalam catatan rilis 1.0. Lihat masalah 1786 di GitHub untuk informasi tambahan.
- Masalah yang menyebabkan URI sumber daya tidak dibangun dengan benar di aplikasi C++ WinUI 3 yang tidak dikemas telah diperbaiki di Visual Studio 2022 17.2. Jika menggunakan versi Visual Studio yang lebih lama, harap perbarui Visual Studio ke 17.2 untuk menerima perbaikan ini.
Batasan yang diketahui:
- Dalam proyek .NET, file sumber daya yang disalin ke folder proyek tidak diindeks di F5 jika aplikasi sudah dibuat. Sebagai solusinya, bangun ulang aplikasi. Lihat masalah 1503 di GitHub untuk informasi selengkapnya.
Untuk informasi selengkapnya, lihat Mengelola sumber daya dengan MRT Core.
Notifications
Pengembang paket (termasuk dikemas dengan lokasi eksternal) dan aplikasi yang tidak dikemas sekarang dapat mengirim pemberitahuan Windows.
Fitur baru:
- Dukungan untuk pemberitahuan aplikasi untuk aplikasi yang dikemas dan tidak dikemas.
- Pengembang dapat mengirim pemberitahuan aplikasi, juga dikenal sebagai pemberitahuan toast, secara lokal atau dari layanan cloud mereka sendiri. Lihat Ringkasan pemberitahuan aplikasi.
- Dukungan untuk pemberitahuan push untuk aplikasi yang dikemas dan tidak dikemas.
- Pengembang dapat mengirim pemberitahuan mentah dan pemberitahuan aplikasi dari layanan cloud mereka sendiri. Lihat Gambaran umum pemberitahuan push.
Batasan yang diketahui:
- Mengirim pemberitahuan dari aplikasi yang ditingkatkan tidak didukung.
PushNotificationManager::IsSupported()
tidak akan melakukan pemeriksaan untuk mode yang ditingkatkan.
Windowing
Untuk akses pemrograman yang lebih mudah ke fungsionalitas yang diterapkan dalam USER32.dll (lihat Windows dan pesan), rilis ini menampilkan lebih banyak fungsionalitas itu sendiri AppWindow
.
Fitur baru:
- Aplikasi dengan jendela yang ada memiliki kontrol lebih besar atas bagaimana jendela ditampilkan, dengan memanggil
AppWindow.ShowOnceWithRequestedStartupState
—setara denganShowWindow(SW_SHOWDEFAULT)
. - Aplikasi dapat menampilkan, meminimalkan, atau memulihkan jendela sambil menentukan apakah jendela harus diaktifkan atau tidak pada saat panggilan dilakukan.
- Aplikasi sekarang dapat menentukan dimensi tertentu untuk ukuran area klien jendela mereka dalam koordinat Win32 tanpa perlu menghitung ukuran area non-klien untuk mendapatkan ukuran area klien tertentu.
- API WinRT tambahan tersedia untuk mendukung manajemen z-order windows berdasarkan fungsionalitas hWndInsertAfter SetWindowPos.
- Aplikasi yang menggambar bilah judul kustom dengan
AppWindowTitleBar.ExtendsContentIntoTitleBar
dapat mengaturPreferredTitleBarHeight
opsi. Anda sekarang memiliki pilihan antara bilah judul tinggi standar, atau bilah judul tinggi yang menyediakan lebih banyak ruang untuk konten interaktif. Lihat Bilah judul di panduan Desain lancar untuk saran tentang kapan harus menggunakan bilah judul tinggi.
Masalah yang diperbaiki:
- Ketika penyaji layar penuh dipanggil untuk pertama kalinya, jendela sekarang pas di seluruh layar dengan benar. Lihat masalah 1853 di GitHub untuk informasi selengkapnya.
- Windows dibuat dengan
AppWindow::GetFromWindowId
memiliki sebagai penyajiOverlappedPresenter
default tetapi tidak memiliki batasan dalam hal perubahan pada gaya jendela yang berasal dari API lain. Windows yang dibuat dengan AppWindow::Create akan memiliki pagar pembatas Penyaji default sejak awal. Lihat masalah 2049 di GitHub untuk informasi selengkapnya. OverlappedPresenter.SetBorderAndTitlebar
Menggunakan API untuk menyembunyikan tombol keterangan dan batas akan menghasilkan batas atas 1px saat dimaksimalkan. Ini telah diselesaikan. Lihat masalah 1693 di GitHub untuk informasi selengkapnya.
Batasan yang diketahui:
Saat menggunakan APPWindowTitlebar API untuk menyesuaikan warna bilah judul standar, ikon dan teks tidak selaras dibandingkan dengan bilah judul standar. Untuk informasi selengkapnya, lihat Masalah GitHub 2459.
Saat memecahkan masalah GitHub 2049 (terlihat di atas), kami memperkenalkan bug berikut: jika Anda menerapkan AppWindowPresenter apa pun ke AppWindow yang telah Anda ambil dari GetFromWindowId, lalu ubah gaya jendela yang sedang dilacak oleh Penyaji tersebut melalui panggilan API USER32, lalu coba kembali ke status jendela sebelumnya dengan menerapkan kembali Presenter default, hasilnya adalah jendela yang tidak memiliki bilah judul. Jika Anda mengandalkan Penyaji apa pun di aplikasi Anda, dan menggunakan panggilan ke USER32 untuk mengubah gaya jendela pada saat Penyaji non-default diterapkan, maka Anda mungkin perlu menambahkan solusi untuk memastikan perilaku jendela yang benar hingga bug ini dilayankan. Anda dapat menggunakan cuplikan kode berikut sebagai templat untuk cara mengatasi masalah ini:
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
Komponen Runtime C# Windows, termasuk kontrol kustom WinUI, sekarang didukung. Ini memungkinkan penulis komponen mendistribusikan komponen runtime C#-authored ke bahasa yang kompatibel dengan WinRT (misalnya, C++/WinRT). Lihat Panduan—Buat komponen C# dengan kontrol WinUI 3, dan gunakan dari aplikasi C++/WinRT yang menggunakan SDK Aplikasi Windows dan sampel di GitHub untuk memulai.
Batasan lain dan masalah yang diketahui
- Aplikasi yang mereferensikan paket yang bergantung pada WebView2 (seperti Microsoft.Identity.Client) gagal dibuat. Ini disebabkan oleh biner yang bertentangan pada waktu build. Lihat masalah 2492 di GitHub untuk informasi selengkapnya.
- Menggunakan
dotnet build
dengan proyek pustaka kelas WinAppSDK C# mungkin melihat kesalahan build "Tugas Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent tidak dapat dimuat". Untuk mengatasi masalah ini, atur<EnableMsixTooling>true</EnableMsixTooling>
dalam file proyek Anda. - Templat WinAppSDK default mencatat bahwa MaxVersionTested="10.0.19041.0" ketika seharusnya "10.0.22000.0". Untuk dukungan penuh dari beberapa fitur, terutama UnlockedDEHs, perbarui MaxVersionTested ke "10.0.22000.0" dalam file proyek Anda.
Versi 1.0
Rilis terbaru yang tersedia dari silsilah 1.0.x dari saluran stabil SDK Aplikasi Windows adalah versi 1.0.4. 1.0.x mendukung semua fitur saluran yang stabil (lihat bagian Fitur yang tersedia oleh saluran rilis di saluran rilis SDK Aplikasi Windows).
Versi 1.0.4
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.0.
Perbaikan bug
- Memperbaiki masalah yang menyebabkan AppBars, saat digunakan sebagai Page.TopAppBar atau Page.BottomAppBar untuk tidak dirender di layar.
- Memperbaiki masalah di mana aplikasi dengan nama paket 12 karakter atau kurang yang menggunakan kontrol WinUI dari MUXControls.dll akan segera mengalami crash. Untuk informasi selengkapnya, lihat masalah 6360 di GitHub.
- Memperbaiki masalah input sentuh yang menyebabkan masalah dengan pintasan keyboard dan skenario lainnya. Untuk informasi selengkapnya, lihat masalah 6291 di GitHub.
- Memperbaiki masalah yang menyebabkan aplikasi yang dibungkus dengan MSIX atau disebarkan sebagai mandiri gagal disebarkan.
- Memperbaiki masalah yang menyebabkan aplikasi terkadang mengalami crash selama operasi seret dan lepas. Untuk informasi selengkapnya lihat masalah 7002 di GitHub.
Versi 1.0.3
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.0.
Perbaikan bug
- Memperbaiki masalah yang menyebabkan aplikasi C# dengan WebView2 mengalami crash saat peluncuran saat C/C++ Runtime (CRT) tidak diinstal.
- Memperbaiki masalah input sentuh yang menyebabkan masalah dengan pintasan keyboard dan skenario lainnya. Untuk informasi selengkapnya, lihat masalah 6291 di GitHub.
Catatan: Kami biasanya tidak menambahkan fungsionalitas dalam rilis layanan, tetapi perbaikan WebView2 rilis ini mengharuskan kami memperbarui ke versi terbaru WebView2 SDK (1020.46 hingga 1185.39). Lihat Catatan Rilis untuk WebView2 SDK untuk informasi tambahan tentang WebView2 1.0.1185.39 dan Mendistribusikan aplikasi Anda dan Runtime WebView2 untuk informasi tambahan tentang Runtime WebView2.
Versi 1.0.2
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 1.0.
Perbaikan bug
- Memperbaiki masalah siklus tata letak yang menyebabkan aplikasi mengalami crash saat menggulir ke akhir ListView. Untuk informasi selengkapnya lihat masalah 6218 di GitHub.
- Memperbaiki masalah yang menyebabkan aplikasi C# mengalami crash saat peluncuran saat C/C++ Runtime (CRT) tidak diinstal. Namun, CRT masih diperlukan untuk aplikasi C# menggunakan WebView2. Untuk informasi selengkapnya, lihat masalah 2117 di GitHub.
- Memperbaiki masalah di mana aplikasi dengan MSIX proyek tunggal tidak menghasilkan file .appinstaller. Untuk informasi selengkapnya, lihat masalah 1821 di GitHub.
- Memperbaiki masalah di mana aplikasi WinUI tidak mendukung .NET 6
dotnet build
.
Versi 1.0.1
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting dan dukungan multi-jendela untuk rilis 1.0.
Perbaikan bug
- Memperbaiki masalah yang menyebabkan MddBootstrapAutoinitializer tidak dikompilasi dengan ImplicitUsings yang diaktifkan. Untuk informasi selengkapnya, lihat masalah 1686 di GitHub.
- Memperbaiki masalah di mana fokus di WebView2 akan hilang secara tak terduga menyebabkan masalah input dan pemilihan. Untuk informasi selengkapnya, lihat masalah 5615 & masalah 5570 di GitHub.
- Memperbaiki masalah yang menyebabkan toolbar dalam aplikasi di Visual Studio tidak dapat diklik saat menggunakan bilah judul kustom di aplikasi WinUI 3.
- Memperbaiki masalah yang menyebabkan Snap Layout tidak muncul saat menggunakan bilah judul kustom di aplikasi WinUI 3. Untuk informasi selengkapnya, lihat masalah 6333 & masalah 6246 di GitHub.
- Memperbaiki masalah yang menyebabkan pengecualian saat mengatur properti Window.ExtendsContentIntoTitleBar saat Window.SetTitlebar telah dipanggil dengan UIElement yang masih memuat.
- Memperbaiki masalah di mana aplikasi MSIX proyek tunggal tidak mendukung
dotnet build
. - Memperbaiki masalah yang menyebabkan aplikasi yang tidak dikemas tidak diinstal setelah menginstal aplikasi paket. Untuk informasi selengkapnya, lihat masalah 1871 di GitHub.
- Memperbaiki masalah mengurangi performa selama operasi seret mouse.
- Memperbaiki crash saat memanggil GetWindowIdFromWindow() di aplikasi yang tidak dikemas. Untuk informasi selengkapnya, lihat diskusi 1891 di GitHub.
Batasan dan masalah yang diketahui untuk versi 1.0 juga berlaku untuk versi 1.0.1.
Selain itu, untuk aplikasi dengan bilah judul kustom, kami telah membuat perubahan dalam rilis ini (dan memperbaiki banyak masalah) yang mencakup perbaikan pada jendela kaca yang digunakan untuk operasi seret&letakkan. Rekomendasinya adalah menggunakan nilai dan perilaku default (cobalah!). Jika bilah judul Anda menggunakan margin sehingga tombol keterangan default interaktif, sebaiknya visualisasikan wilayah seret Anda dengan mengatur latar belakang bilah judul Anda menjadi merah lalu menyesuaikan margin untuk memperluas wilayah seret ke kontrol keterangan.
Fitur baru
Kami telah menstabilkan dan mengaktifkan pembuatan beberapa jendela pada utas yang sama dalam aplikasi WinUI 3. Lihat masalah 5918 untuk informasi selengkapnya.
Versi 1.0
Bagian berikut menjelaskan fitur baru dan yang diperbarui, batasan, dan masalah yang diketahui untuk 1.0.
WinUI 3
WinUI 3 adalah kerangka kerja pengalaman pengguna asli (UX) untuk SDK Aplikasi Windows. Dalam rilis ini kami telah menambahkan beberapa fitur baru dari SDK Aplikasi Windows 0,8 dan masalah stabil dari rilis Pratinjau 1.0.
Fitur dan pembaruan baru:
- Kami telah menambahkan kontrol baru (PipsPager, Expander, BreadcrumbBar) dan memperbarui kontrol yang ada untuk mencerminkan gaya Windows terbaru dari WinUI 2.6.
- Kemasan MSIX proyek tunggal didukung di WinUI dengan membuat aplikasi baru menggunakan "Aplikasi Kosong, Dikemas..." templat.
- Kami sekarang mendukung penyebaran aplikasi WinUI 3 yang tidak dibungkus pada Windows versi 1809 ke atas. Silakan lihat Membuat proyek WinUI 3 pertama Anda untuk informasi tambahan.
- Proyek WinUI 3 sekarang dapat mengatur versi target mereka ke Windows 10, versi 1809. Sebelumnya, mereka hanya dapat diatur serendah versi 1903.
- Toolbar dalam aplikasi, Hot Reload, & Live Visual Tree untuk aplikasi paket WinUI didukung di Visual Studio 2022 Pratinjau 5 dan GA.
Batasan penting:
Masalah umum untuk aplikasi WinUI yang dikemas dan tidak dikemas:
- Kesalahan run-time di aplikasi C++ atau C# yang mereferensikan Komponen Runtime C++ Windows:
Untuk mengatasinya, tambahkan target di bawah ini ke akhir .vcxproj Komponen Windows Runtime:
<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>
Kesalahan yang diharapkan akan mirip dengan kesalahan asal WinRT - 0x80004005 : 'Tidak dapat menemukan sumber daya dari 'ms-appx:///BlankPage.xaml'.'.
- Kesalahan run-time di aplikasi C++ atau C# yang mereferensikan Komponen Runtime C++ Windows:
Masalah umum untuk aplikasi WinUI dengan MSIX proyek tunggal (Aplikasi Kosong, Templat paket):
- Item menu Paket & Terbitkan hilang hingga Anda memulai ulang Visual Studio: Saat membuat aplikasi baru dengan MSIX proyek tunggal di Visual Studio 2019 dan Visual Studio 2022 menggunakan templat proyek Aplikasi Kosong, Dipaketkan (WinUI 3 di Desktop), perintah untuk menerbitkan proyek tidak muncul di menu hingga Anda menutup dan membuka kembali Visual Studio.
- Aplikasi C# dengan MSIX proyek tunggal tidak akan dikompilasi tanpa komponen opsional "C++ (v14x) Platform Windows Universal Tools" yang diinstal. Lihat Menginstal alat untuk SDK Aplikasi Windows untuk informasi tambahan.
- Potensi kesalahan run-time dalam aplikasi dengan MSIX proyek tunggal yang menggunakan jenis yang ditentukan dalam Komponen Runtime Windows yang dirujuk: Untuk mengatasinya, tambahkan entri kelas yang dapat diaktifkan secara manual ke appxmanifest.xml.
- Kesalahan yang diharapkan dalam aplikasi C# adalah "COMException: Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).
- Kesalahan yang diharapkan dalam aplikasi C++/WinRT adalah "winrt::hresult_class_not_registered".
Masalah umum untuk aplikasi WinUI 3 yang tidak dikemas (aplikasi yang tidak dikemas):
- Beberapa API memerlukan identitas paket, dan tidak didukung di aplikasi yang tidak dikemas, seperti:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- StorageFile.CreateStreamedFileFromUriAsync
- ApiInformation (tidak didukung pada Windows 10)
- Package.Current
- API apa pun di namespace Layanan Windows.ApplicationModel.Resources
- API apa pun di namespace Microsoft.Windows.ApplicationModel.Resources
- Beberapa API memerlukan identitas paket, dan tidak didukung di aplikasi yang tidak dikemas, seperti:
Masalah umum untuk pengemasan dan penyebaran aplikasi WinUI:
- Perintah
Package
tidak didukung di aplikasi WinUI dengan MSIX proyek tunggal (Aplikasi Kosong, Templat paket). Sebagai gantinyaPackage & Publish
, gunakan perintah untuk membuat paket MSIX. - Untuk membuat paket NuGet dari Pustaka Kelas C# dengan
Pack
perintah , pastikan yang aktifConfiguration
adalahRelease
. - Perintah
Pack
tidak didukung di C++ Windows Runtime Components untuk membuat paket NuGet.
- Perintah
Untuk informasi selengkapnya, atau untuk mulai mengembangkan dengan WinUI, lihat:
Windowing
SDK Aplikasi Windows menyediakan kelas AppWindow yang mengembangkan kelas pratinjau Windows.UI.WindowManagement.AppWindow sebelumnya yang mudah digunakan dan membuatnya tersedia untuk semua aplikasi Windows, termasuk Win32, WPF, dan WinForms.
Fitur baru
- AppWindow adalah API windowing tingkat tinggi yang memungkinkan skenario windowing yang mudah digunakan yang terintegrasi dengan baik dengan pengalaman pengguna Windows dan dengan aplikasi lain. Mewakili abstraksi tingkat tinggi dari kontainer yang dikelola sistem dari konten aplikasi. Ini adalah kontainer tempat konten Anda dihosting, dan mewakili entitas yang berinteraksi dengan pengguna saat mereka mengubah ukuran dan memindahkan aplikasi Anda di layar. Bagi pengembang yang terbiasa dengan Win32, AppWindow dapat dilihat sebagai abstraksi tingkat tinggi HWND.
- DisplayArea mewakili abstraksi tingkat tinggi HMONITOR, mengikuti prinsip yang sama dengan AppWindow.
- DisplayAreaWatcher memungkinkan pengembang untuk mengamati perubahan dalam topologi tampilan dan menghitung DisplayAreas yang saat ini ditentukan dalam sistem.
Untuk informasi selengkapnya, lihat Mengelola jendela aplikasi.
Input
Ini adalah API input yang mendukung WinUI dan menyediakan permukaan API tingkat bawah bagi pengembang untuk mencapai interaksi input yang lebih canggih.
Fitur baru
- API Pointer: PointerPoint, PointerPointProperties, dan PointerEventArgs untuk mendukung pengambilan informasi peristiwa pointer dengan API input XAML.
- INPUTPointerSource API: Mewakili objek yang terdaftar untuk melaporkan input pointer, dan menyediakan kursor penunjuk dan penanganan peristiwa input untuk API SwapChainPanel XAML.
- API Kursor: Memungkinkan pengembang mengubah bitmap kursor.
- GestureRecognizer API: Memungkinkan pengembang mengenali gerakan tertentu seperti seret, tahan, dan klik saat diberi informasi pointer.
Batasan penting
- Semua fungsi pabrik statis PointerPoint telah dihapus: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints, dan GetIntermediatePointsTransformed.
- SDK Aplikasi Windows tidak mendukung pengambilan objek PointerPoint dengan ID pointer. Sebagai gantinya, Anda dapat menggunakan fungsi anggota PointerPoint GetTransformedPoint untuk mengambil versi objek PointerPoint yang sudah diubah. Untuk titik perantara, Anda dapat menggunakan fungsi anggota PointerEventArgs GetIntermediatePoints dan GetTransformedIntermediatePoints.
- Penggunaan langsung platform SDK API Windows.UI.Core.CoreDragOperation tidak akan berfungsi dengan aplikasi WinUI.
- Properti PointerPoint RawPosition dan ContactRectRaw dihapus karena mengacu pada nilai yang tidak diprediksi, yang sama dengan nilai normal dalam OS. Gunakan Posisi dan ContactRect sebagai gantinya. Prediksi pointer sekarang ditangani dengan objek API Microsoft.UI.Input.PointerPredictor .
Siklus Hidup Aplikasi
Sebagian besar fitur Siklus Hidup Aplikasi sudah ada di platform UWP, dan telah dibawa ke SDK Aplikasi Windows untuk digunakan oleh jenis aplikasi desktop, terutama aplikasi Konsol yang tidak dikemas, aplikasi Win32, aplikasi Formulir Windows, dan aplikasi WPF. Implementasi SDK Aplikasi Windows fitur ini tidak dapat digunakan dalam aplikasi UWP, karena ada fitur yang setara di platform UWP itu sendiri.
Penting
Jika Anda sedang mengerjakan aplikasi UWP, lihat Migrasi dari UWP ke SDK Aplikasi Windows.
Aplikasi non-UWP juga dapat dimasukan ke dalam paket MSIX. Meskipun aplikasi ini dapat menggunakan beberapa fitur Siklus Hidup Aplikasi SDK Aplikasi Windows, aplikasi tersebut harus menggunakan pendekatan manifes di mana ini tersedia. Misalnya, mereka tidak dapat menggunakan API RegisterForXXXActivation SDK Aplikasi Windows dan sebaliknya harus mendaftar untuk aktivasi kaya melalui manifes.
Semua batasan untuk aplikasi paket juga berlaku untuk aplikasi WinUI, yang dikemas, dan ada pertimbangan tambahan seperti yang dijelaskan di bawah ini.
Pertimbangan penting:
Aktivasi kaya: GetActivatedEventArgs
- Aplikasi yang tidak dikemas: Sepenuhnya dapat digunakan.
- Aplikasi paket: Dapat digunakan, tetapi aplikasi ini juga dapat menggunakan platform
GetActivatedEventArgs
. Perhatikan bahwa platform mendefinisikan Windows.ApplicationModel.AppInstance sedangkan SDK Aplikasi Windows menentukan Microsoft.Windows.AppLifecycle.AppInstance. Dan sementara aplikasi UWP dapat menggunakanActivatedEventArgs
kelas, sepertiFileActivatedEventArgs
danLaunchActivatedEventArgs
, aplikasi yang menggunakan fitur SDK Aplikasi Windows AppLifecycle harus menggunakan antarmuka bukan kelas (misalnya,IFileActivatedEventArgs
,ILaunchActivatedEventArgs
, dan sebagainya). - Aplikasi WinUi: App.OnLaunched WinUI diberikan Microsoft.UI.Xaml.LaunchActivatedEventArgs, sedangkan platform
GetActivatedEventArgs
mengembalikan objek Windows.ApplicationModel.IActivatedEventArgs, dan WindowsAppSDKGetActivatedEventArgs
mengembalikan objek Microsoft.Windows.AppLifecycle.AppActivationArguments yang dapat mewakili platformLaunchActivatedEventArgs
. - Untuk informasi selengkapnya, lihat Aktivasi kaya.
Daftar/Batalkan pendaftaran untuk aktivasi kaya
- Aplikasi yang tidak dikemas: Sepenuhnya dapat digunakan.
- Aplikasi paket: Tidak dapat digunakan menggunakan manifes MSIX aplikasi sebagai gantinya.
- Untuk informasi selengkapnya, lihat Aktivasi kaya.
Single/Multi-instancing
- Aplikasi yang tidak dikemas: Sepenuhnya dapat digunakan.
- Aplikasi paket: Sepenuhnya dapat digunakan.
- Aplikasi WinUI: Jika aplikasi ingin mendeteksi instans lain dan mengalihkan aktivasi, aplikasi harus melakukannya sedini mungkin, dan sebelum menginisialisasi jendela apa pun, dll. Untuk mengaktifkan ini, aplikasi harus menentukan DISABLE_XAML_GENERATED_MAIN, dan menulis Main kustom (C#) atau WinMain (C++) di mana aplikasi dapat melakukan deteksi dan pengalihan.
- RedirectActivationToAsync adalah panggilan asinkron , dan Anda tidak boleh menunggu panggilan asinkron jika aplikasi Anda berjalan di STA. Untuk aplikasi Formulir Windows dan C# WinUI, Anda dapat menyatakan Main menjadi asinkron, jika perlu. Untuk aplikasi C++ WinUI dan C# WPF, Anda tidak dapat menyatakan Main menjadi asinkron, jadi sebagai gantinya Anda perlu memindahkan panggilan pengalihan ke utas lain untuk memastikan Anda tidak memblokir STA.
- Untuk informasi selengkapnya, lihat Instancing aplikasi.
Pemberitahuan Power/State
- Aplikasi yang tidak dikemas: Sepenuhnya dapat digunakan.
- Aplikasi paket: Sepenuhnya dapat digunakan.
- Untuk informasi selengkapnya, lihat Manajemen daya.
Masalah yang diketahui:
- Asosiasi Tipe File salah mengodekan %1 menjadi %251 saat mengatur templat baris perintah handler Kata Kerja, yang lumpuh membongkar aplikasi Win32. Anda dapat mengedit nilai Registri secara manual menjadi %1 sebagai solusi parsial. Jika jalur file target memiliki ruang di dalamnya, jalur tersebut masih akan gagal dan tidak ada solusi untuk skenario tersebut.
- Bug Tunggal/Multi-instancing ini akan diperbaiki dalam patch layanan yang akan datang:
- Pengalihan AppInstance tidak berfungsi saat dikompilasi untuk x86
- Mendaftarkan kunci, membatalkan pendaftaran, dan mendaftarkan ulang itu menyebabkan aplikasi mengalami crash
DWriteCore
DWriteCore adalah implementasi SDK Aplikasi Windows DirectWrite, yang merupakan API DirectX untuk penyajian teks berkualitas tinggi, font kerangka independen resolusi, dan dukungan teks dan tata letak Unicode lengkap. DWriteCore adalah bentuk DirectWrite yang berjalan pada versi Windows ke Windows 10, versi 1809 (10.0; Bangun 17763), dan membuka pintu bagi Anda untuk menggunakannya lintas platform.
Fitur DWriteCore berisi semua fitur DirectWrite, dengan beberapa pengecualian.
Batasan penting
- DWriteCore tidak berisi fitur DirectWrite berikut:
- Font per sesi
- Font karakter yang ditentukan pengguna akhir (EUDC)
- API streaming font
- Dukungan API rendering tingkat rendah bersifat parsial.
- DWriteCore tidak beroperasi dengan Direct2D, tetapi Anda dapat menggunakan IDWriteGlyphRunAnalysis dan IDWriteBitmapRenderTarget.
Untuk informasi selengkapnya, lihat Gambaran umum DWriteCore.
MRT Core
MRT Core adalah versi yang disederhanakan dari Sistem Manajemen Sumber Daya Windows modern yang didistribusikan sebagai bagian dari SDK Aplikasi Windows.
Batasan penting
- Dalam proyek .NET, file sumber daya yang disalin ke folder proyek tidak diindeks di F5 jika aplikasi sudah dibuat. Sebagai solusinya, bangun ulang aplikasi. Lihat masalah 1503 untuk informasi selengkapnya.
- Dalam proyek .NET, ketika file sumber daya ditambahkan ke proyek menggunakan UI Visual Studio, file mungkin tidak diindeks secara default. Lihat masalah 1786 untuk informasi selengkapnya. Untuk mengatasi masalah ini, hapus entri di bawah ini dalam file CSPROJ:
<ItemGroup> <Content Remove="<image file name>" /> </ItemGroup> <ItemGroup> <PRIResource Remove="<resw file name>" /> </ItemGroup>
- Untuk aplikasi C++ WinUI yang tidak dikemas, URI sumber daya tidak dibuat dengan benar. Untuk mengatasi masalah ini, tambahkan hal berikut di vcxproj:
<!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> --> <PropertyGroup> <AppxPriInitialPath></AppxPriInitialPath> </PropertyGroup>
Untuk informasi selengkapnya, lihat Mengelola sumber daya dengan MRT Core.
Penyebaran
Fitur dan pembaruan baru
- Anda dapat menginisialisasi SDK Aplikasi Windows secara otomatis melalui
WindowsPackageType project
properti untuk memuat runtime SDK Aplikasi Windows dan memanggil API SDK Aplikasi Windows. Lihat Membuat proyek WinUI 3 pertama Anda untuk instruksi. - Aplikasi yang tidak dipaketkan dapat menyebarkan SDK Aplikasi Windows dengan mengintegrasikan alat penginstal SDK Aplikasi Windows
.exe
mandiri ke MSI atau program penyiapan yang ada. Untuk informasi selengkapnya, lihat panduan penyebaran SDK Aplikasi Windows untuk aplikasi yang bergantung pada kerangka kerja yang dikemas dengan lokasi eksternal atau tidak dikemas. - Aplikasi .NET yang tidak dipaketkan juga dapat menggunakan pembungkus .NET untuk API bootstrapper untuk secara dinamis mengambil dependensi pada paket kerangka kerja SDK Aplikasi Windows pada waktu proses. Untuk informasi selengkapnya tentang pembungkus .NET, lihat pustaka pembungkus .NET.
- Aplikasi paket dapat menggunakan API penyebaran untuk memverifikasi dan memastikan bahwa semua paket yang diperlukan diinstal pada komputer. Untuk informasi selengkapnya tentang cara kerja API penyebaran, lihat panduan penyebaran SDK Aplikasi Windows untuk aplikasi paket yang bergantung pada kerangka kerja.
Batasan penting
- Pembungkus .NET untuk API bootstrapper hanya ditujukan untuk digunakan oleh aplikasi .NET yang tidak dikemas untuk menyederhanakan akses ke SDK Aplikasi Windows.
- Hanya aplikasi paket MSIX yang memiliki kepercayaan penuh atau memiliki kemampuan dibatasi packageManagement yang memiliki izin untuk menggunakan API penyebaran untuk menginstal dependensi paket utama dan singleton. Dukungan untuk aplikasi paket kepercayaan parsial akan datang dalam rilis selanjutnya.
- Saat F5 menguji aplikasi x86 yang menggunakan metode DeploymentManager.Initialize pada sistem x64, pastikan bahwa kerangka kerja x64 pertama kali diinstal dengan menjalankan WindowsAppRuntimeInstall.exe. Jika tidak, Anda akan mengalami kesalahan NOT_FOUND karena Visual Studio tidak menyebarkan kerangka kerja x64, yang biasanya terjadi melalui penyebaran Store atau sideloading.
Batasan lain dan masalah yang diketahui
Tidak ada dukungan untuk konfigurasi build CPU apa pun: Saat menambahkan SDK Aplikasi Windows ke aplikasi atau komponen .NET yang ada yang mendukung CPU Apa pun, Anda harus menentukan arsitektur yang diinginkan:
x86
, ataux64
arm64
.Meningkatkan dari .NET 5 ke .NET 6: Saat meningkatkan di UI Visual Studio, Anda mungkin mengalami kesalahan build. Sebagai solusinya, perbarui file
TargetFrameworkPackage
proyek Anda secara manual ke yang di bawah ini:<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
Aplikasi MSIX proyek tunggal C# tidak dikompilasi jika Alat UWP C++ tidak diinstal. Jika Anda memiliki proyek MSIX proyek tunggal C#, maka Anda harus menginstal komponen opsional C++ (v14x) Platform Windows Universal Tools.
VSIX bahasa berikutnya gagal diinstal ke Visual Studio 2019 saat beberapa versi Visual Studio 2019 diinstal. Jika Anda memiliki beberapa versi Visual Studio 2019 yang terinstal (misalnya Rilis dan Pratinjau) lalu instal VSIX SDK Aplikasi Windows untuk C++ dan C#, penginstalan kedua akan gagal. Untuk mengatasinya, hapus instalan MSIX Packaging Tools proyek tunggal untuk Visual Studio 2019 setelah VSIX bahasa pertama. Lihat umpan balik ini untuk informasi tambahan tentang masalah ini.
Alternatif untuk DispatcherQueue.TryEnqueue (untuk membalas eksekusi pada utas antrean dispatcher) adalah menggunakan fungsi pembantu resume_foreground di Windows Implementation Library (WIL):
- Tambahkan referensi ke proyek Anda ke paket NuGet Microsoft.Windows.ImplementationLibrary .
- Tambahkan
#include <wil/cppwinrt_helpers.h>
kepch.h
. - Tambahkan
#include <winrt/Microsoft.UI.Dispatching.h>
kepch.h
. - Sekarang
co_await wil::resume_foreground(your_dispatcherqueue);
.
Versi 0.8
Rilis terbaru yang tersedia dari silsilah 0.8.x dari saluran stabil SDK Aplikasi Windows adalah versi 0.8.12.
Catatan
SDK Aplikasi Windows sebelumnya dikenal dengan nama kode Project Reunion. Beberapa aset SDK di versi 0.8 dan yang lebih lama masih menggunakan nama kode. Beberapa area dokumentasi masih menggunakan Project Reunion saat merujuk ke aset yang ada atau rilis sebelumnya yang ditentukan.
Versi 0.8.12
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 0.8.0.
Catatan
Untuk pengembang C#, salah satu versi .NET SDK berikut diperlukan: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (atau yang lebih baru). Untuk memperbarui versi .NET SDK Anda, kunjungi Unduhan .NET atau perbarui ke versi terbaru Visual Studio. Tanpa versi .NET SDK yang diperlukan, saat memperbarui paket NuGet Anda, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan WinRT.Runtime.dll versi 1.6 atau yang lebih tinggi.".
Perbaikan bug:
- Memperbaiki masalah saat aplikasi dengan SwapChainPanel atau WebView2 tidak dapat diprediksi mengalami crash karena pelanggaran akses.
Versi 0.8.11
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 0.8.0.
Catatan
Untuk pengembang C#, salah satu versi .NET SDK berikut diperlukan: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (atau yang lebih baru). Untuk memperbarui versi .NET SDK Anda, kunjungi Unduhan .NET atau perbarui ke versi terbaru Visual Studio. Tanpa versi .NET SDK yang diperlukan, saat memperbarui paket NuGet Anda, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan WinRT.Runtime.dll versi 1.6 atau yang lebih tinggi.".
Perbaikan bug:
- Memperbaiki regresi yang menyebabkan peristiwa fokus hilang diaktifkan saat memilih teks menggunakan mouse.
Versi 0.8.10
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 0.8.0.
Catatan
Untuk pengembang C#, salah satu versi .NET SDK berikut diperlukan: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (atau yang lebih baru). Untuk memperbarui versi .NET SDK Anda, kunjungi Unduhan .NET atau perbarui ke versi terbaru Visual Studio. Tanpa versi .NET SDK yang diperlukan, saat memperbarui paket NuGet Anda, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan WinRT.Runtime.dll versi 1.6 atau yang lebih tinggi.".
Perbaikan bug:
- Memperbaiki masalah yang menyebabkan aplikasi terkadang mengalami crash selama operasi seret dan lepas.
Catatan
SDK Aplikasi Windows 0.8.9 tidak dirilis. Versi yang dirilis langsung setelah 0.8.8 adalah 0.8.10.
Versi 0.8.8
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug penting untuk rilis 0.8.0.
Catatan
Untuk pengembang C#, salah satu versi .NET SDK berikut (atau yang lebih baru) diperlukan: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Untuk memperbarui versi .NET SDK Anda, kunjungi Unduhan .NET atau perbarui ke versi terbaru Visual Studio. Tanpa versi .NET SDK yang diperlukan, saat memperbarui paket NuGet Anda, Anda akan melihat kesalahan seperti: "Versi WindowsAppSDK ini memerlukan WinRT.Runtime.dll versi 1.6 atau yang lebih tinggi.".
Perbaikan bug:
- Memperbaiki masalah input sentuhan di TextBox mengenai keyboard lunak dan interaksi umum. Masalah ini juga memengaruhi pintasan keyboard. Untuk informasi selengkapnya, lihat masalah 6291 di GitHub.
- Memperbaiki masalah di mana jendela aplikasi terkadang akan ditampilkan sebagai tidak aktif saat aktif.
- Memperbaiki masalah performa yang disebabkan oleh UIA (UI Automation) yang berjalan dalam proses eksternal.
- Memperbaiki masalah stabilitas aplikasi dengan input pena.
- Memperbaiki masalah di mana render ikon png di Menu tertunda secara dramatis karena UIA.
Versi 0.8.7
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup beberapa pembaruan performa untuk aplikasi C#/.NET. Untuk memperbarui ke versi ini, Anda harus mereferensikan versi paket Windows SDK terbaru. Untuk melakukannya, tambahkan properti <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion>
ke file Anda .csproj
dengan versi SDK yang ditargetkan aplikasi Anda dari TargetFramework
properti . Contohnya:
<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>
...
Versi proyeksi Windows SDK ini akan tersedia dalam rilis layanan .NET 6 mendatang. Setelah pembaruan .NET SDK tersedia, Anda harus menghapus <WindowsSdkPackageVersion>
properti dari file proyek Anda.
Jika Anda tidak mengatur properti ini, maka Anda akan melihat kesalahan seperti: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."
Versi 0.8.6
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup beberapa peningkatan performa untuk aplikasi C#/.NET untuk rilis 0.8.0.
Untuk memperbarui ke versi SDK Aplikasi Windows ini, Anda harus menginstal pembaruan .NET SDK Desember terbaru (lihat Unduh .NET dan .NET 5 akan mencapai Akhir Dukungan pada 10 Mei 2022). Jika Anda tidak memiliki versi minimum yang diperlukan dari .NET SDK yang terinstal, maka Anda akan melihat kesalahan seperti "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."
Perbaikan Bug
Untuk daftar terperinci peningkatan performa, lihat catatan rilis C#/WinRT 1.4.1.
Versi 0.8.5
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug yang lebih penting untuk rilis 0.8.0.
Perbaikan bug
- Memperbaiki masalah yang menyebabkan aplikasi WinUI menggunakan input pointer mengalami crash.
- Memperbaiki masalah yang menyebabkan tombol bilah judul (min, maks, tutup) tidak memiliki sudut bulat pada Windows 11.
- Memperbaiki masalah yang menyebabkan opsi tata letak penguatan ukuran tidak muncul saat mengarahkan mouse ke tombol maksimalkan/pulihkan pada Windows 11.
- Memperbaiki masalah yang menyebabkan pengecualian crash di mana membuat objek PointCollection . Untuk informasi selengkapnya, lihat masalah 971 di Github.
Batasan dan masalah yang diketahui untuk versi 0.8 juga berlaku untuk versi 0.8.5, kecuali ditandai sebaliknya di bagian di bawah ini.
Versi 0.8.4
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug yang lebih penting untuk rilis 0.8.0.
Perbaikan bug
- Perbaikan untuk bilah judul kustom sehingga ContentDialog tidak menutupinya, dan tombol bilah judul dibulatkan.
- Perbaiki untuk crash dalam pemrosesan gambar saat skala tampilan diubah.
- Memperbaiki bug kliping di mana UI hilang atau diklip dengan tidak benar
Batasan dan masalah yang diketahui untuk versi 0.8 juga berlaku untuk versi 0.8.4, kecuali ditandai sebaliknya di bagian di bawah ini.
Versi 0.8.3
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug yang lebih penting untuk rilis 0.8.0.
Perbaikan bug
Fokus keyboard hilang ketika jendela diminimalkan lalu dipulihkan, membutuhkan klik mouse untuk memulihkan fokus.
Batasan dan masalah yang diketahui untuk versi 0.8 juga berlaku untuk versi 0.8.3, kecuali ditandai sebaliknya di bagian di bawah ini.
Versi 0.8.2
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup perbaikan bug yang lebih penting untuk rilis 0.8.0.
Perbaikan bug
- SDK Aplikasi Windows dan WinUI 3 sekarang didukung di Visual Studio 2022 Pratinjau 2 dan yang lebih baru.
- Untuk aplikasi .NET, Anda mungkin menerima kesalahan berikut saat meneruskan dalam array enum:
Object contains non-primitive or non-blittable data.
- Menulis menggunakan Panel Tulisan Tangan di dalam kotak teks menyebabkan crash
- Ikon/gambar selalu dimuat pada nilai skala 100% mereka daripada berdasarkan nilai skala monitor
- Pengumpulan sampah EventSource<T> menyebabkan kegagalan berikutnya untuk berhenti berlangganan handler (lihat masalah GitHub untuk detail selengkapnya)
- Perbaikan keamanan - lihat CVE-2021-34533 untuk detail selengkapnya.
- SwapChainPanel.CompositionScaleChanged terkadang mengembalikan nilai KomposisiScale yang salah setelah mengubah skala tampilan
Batasan dan masalah yang diketahui untuk versi 0.8 juga berlaku untuk versi 0.8.2, kecuali ditandai sebaliknya di bagian di bawah ini.
Versi 0.8.1
Ini adalah rilis layanan dari SDK Aplikasi Windows yang mencakup beberapa perbaikan bug penting untuk rilis 0.8.0.
Perbaikan bug
- SDK Aplikasi Windows tidak dapat berjalan pada build Windows Insider terbaru
- Crash di EditableComboBox saat memasukkan nilai yang tidak muncul di dropdown
- WebView2 tidak mengizinkan pengguna untuk melakukan tab keluar setelah fokus diterima
- Sepenuhnya memenuhi syarat Windows.Foundation.Metadata.DefaultOverload namespace dalam kode yang dihasilkan WinUI untuk menghindari ambiguitas namespace
- Ini memperbaiki bug #5108.
- Perbaikan keamanan - lihat CVE-2021-34489 untuk detail selengkapnya.
Batasan dan masalah yang diketahui untuk versi 0.8 juga berlaku untuk versi 0.8.1, kecuali ditandai sebaliknya di bagian di bawah ini.
Versi 0.8.0 Stabil
Fitur dan pembaruan baru
Rilis ini mendukung semua fitur saluran yang stabil.
WinUI 3
Rilis ini mencakup banyak perbaikan bug dan peningkatan stabilisasi di seluruh WinUI 3. Ini semua adalah perubahan baru di WinUI 3 sejak rilis WinUI 3 - Project Reunion 0.5:
Kontrol Pivot telah ditambahkan kembali dan sekarang dapat digunakan di aplikasi WinUI 3 apa pun.
Semua perbaikan bug dari Project Reunion v0.5.5, v0.5.6, dan v0.5.7 disertakan dengan rilis ini.
Perbaikan bug baru, termasuk:
- Klik kanan mouse di TextBox merusak aplikasi
- NavigationView menyebabkan crash di UWP, Pratinjau Reunion 0.5
- Bilah Kemajuan tidak menampilkan perbedaan antara opsi Dijeda dan Kesalahan
- Crash di RichEditBox saat menyalin/menempelkan/mengubah gaya teks
- Tombol keterangan jendela salah tempat saat SetTitleBar tidak diatur atau null
Untuk daftar lengkap bug yang dibahas dalam rilis ini, lihat repositori GitHub kami.
ColorHelper.ToDisplayName
API tidak lagi tersedia.Jenis berikut telah dihapus:
Microsoft.Graphics.IGeometrySource2D
Microsoft.Graphics.IGeometrySource2DInterop
Gunakan
Windows.Graphics.IGeometrySource2D
danWindows.Graphics.IGeometrySource2DInterop
sebagai gantinya.Semua jenis di
Microsoft.System
namespace telah dipindahkan keMicrosoft.UI.Dispatching
namespace layanan, termasuk kelas DispatcherQueue.Properti
AcrylicBrush.BackgroundSource
telah dihapus, karenaHostBackdrop
tidak didukung sebagaiBackgroundSource
di WinUI 3.
Untuk informasi selengkapnya tentang WinUI, lihat Pustaka Windows UI 3 (WinUI).
Untuk melihat kontrol dan fitur WinUI 3 yang sedang beraksi, Anda dapat mengkloning dan membangun aplikasi Galeri WinUI 3 dari GitHub, atau mengunduh aplikasi dari Microsoft Store.
Untuk mulai mengembangkan dengan WinUI, lihat artikel berikut:
- Templat WinUI 3 di Visual Studio
- Buat proyek WinUI 3 pertama Anda
- Membangun aplikasi C# .NET dengan interop WinUI 3 dan Win32
- Referensi API WinUI 3
DWriteCore
Rilis DWriteCore ini mencakup fitur baru dan yang diperbarui berikut. DWriteCore diperkenalkan dan dijelaskan dalam gambaran umum DWriteCore.
- DWriteCore sekarang memiliki dukungan untuk garis bawah—lihat IDWriteTextLayout::GetUnderline dan IDWriteTextLayout::SetUnderline.
- Dukungan untuk coretan—lihat IDWriteTextLayout::GetStrikethrough dan IDWriteTextLayout::SetStrikethrough.
- Dukungan untuk teks vertikal melalui IDWriteTextLayout—lihat Teks vertikal.
- Semua metode antarmuka IDWriteTextAnalyzer dan IDWriteTextAnalyzer1 diimplementasikan.
- Fungsi bebas DWriteCoreCreateFactory membuat objek pabrik yang digunakan untuk pembuatan objek DWriteCore individual berikutnya.
Catatan
DWriteCoreCreateFactory secara fungsional sama dengan fungsi DWriteCreateFactory yang diekspor oleh versi sistem DirectWrite. Fungsi DWriteCore memiliki nama yang berbeda untuk menghindari ambiguitas jika Anda menautkan dan DWriteCore.lib
DWrite.lib
.
Untuk referensi API DWriteCore dan DirectWrite, lihat Referensi API DWriteCore dan Referensi API DirectWrite.
MRTCore
- Tindakan Build untuk sumber daya secara otomatis diatur saat Anda menambahkan sumber daya ke proyek Anda, mengurangi kebutuhan akan konfigurasi proyek manual.
Batasan
Rilis ini saat ini tidak didukung pada Saluran Dev program Windows Insider. Ini diperbaiki dalam versi 0.8.1.
Aplikasi desktop (desktop C# atau C++): Rilis ini didukung untuk digunakan hanya di aplikasi desktop (C++ atau C#) yang dibungkus menggunakan MSIX. Untuk menggunakan SDK Aplikasi Windows di aplikasi desktop yang tidak dikemas, Anda harus menggunakan saluran rilis eksperimental.
Penting
Jika Anda sedang mengerjakan aplikasi UWP, lihat Migrasi dari UWP ke SDK Aplikasi Windows.
Masalah umum
Alat WinUI 3 seperti Live Visual Tree, Live Property Explorer, dan Hot Reload di versi 0.8 dan yang lebih baru memerlukan Visual Studio 2019 16.11 Pratinjau 3 dan yang lebih baru.
Aplikasi yang saat ini menggunakan WinUI 3 dan SDK Aplikasi Windows 0.8 tidak dapat menggunakan pustaka kelas yang menggunakan Project Reunion 0.5. Perbarui pustaka kelas untuk menggunakan SDK Aplikasi Windows 0,8.
Aplikasi .NET harus menargetkan build 18362 atau yang lebih baru: TFM Anda harus diatur ke net6.0-windows10.0.18362 atau yang lebih baru, dan proyek kemasan Anda harus diatur ke 18362 atau yang lebih baru. Untuk informasi selengkapnya, lihat Masalah GitHub #921.
Anda mungkin mengalami crash saat sering beralih antara mode terang dan gelap.
Untuk aplikasi .NET, Anda mungkin menerima kesalahan berikut saat meneruskan array enum:
Object contains non-primitive or non-blittable data.
Ini diperbaiki dalam versi 0.8.2.Untuk aplikasi .NET, saat ini tidak ada cara untuk memilih keluar dari gambar yang diindeks sebagai sumber daya aplikasi menggunakan UI Visual Studio. Untuk mengatasi hal ini, tambahkan Directory.Build.targets (lihat Mengkustomisasi build Anda - Visual Studio untuk instruksi) ke proyek dan hapus gambar sebagai berikut:
Untuk menghapus gambar tertentu (perhatikan bahwa jalur relatif diperlukan):
<Project> <ItemGroup> <Content Remove="..\Bitmap1.bmp" /> </ItemGroup> </Project>
Untuk menghapus gambar berdasarkan metadata:
<Project> <ItemGroup> <Content Remove="@(None->WithMetadataValue('Pack','true'))" /> </ItemGroup> </Project>
Perbaikan untuk masalah ini direncanakan untuk rilis mendatang - pada saat itu, solusi di atas tidak akan lagi diperlukan.
Versi 0.5
Rilis terbaru yang tersedia dari silsilah 0.5.x dari saluran stabil SDK Aplikasi Windows adalah versi 0.5.9.
Fitur dan pembaruan baru
Rilis ini mendukung semua fitur saluran yang stabil.
Masalah dan batasan yang diketahui
Rilis ini memiliki batasan berikut dan masalah yang diketahui:
- Aplikasi desktop (desktop C# atau C++): Rilis ini didukung untuk digunakan hanya di aplikasi desktop (C++ atau C#) yang dibungkus menggunakan MSIX. Untuk menggunakan SDK Aplikasi Windows di aplikasi desktop yang tidak dikemas, Anda harus menggunakan saluran rilis eksperimental.
- Aplikasi .NET harus menargetkan build 18362 atau yang lebih baru: TFM Anda harus diatur ke
net6.0-windows10.0.18362
atau yang lebih baru, dan proyek<TargetPlatformVersion>
kemasan Anda harus diatur ke 18362 atau yang lebih baru. Untuk informasi selengkapnya, lihat masalah yang diketahui di GitHub.
Penting
Jika Anda sedang mengerjakan aplikasi UWP, lihat Migrasi dari UWP ke SDK Aplikasi Windows.
Topik terkait
Windows developer
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk