Bagikan melalui


Panduan migrasi tambahan

Topik ini berisi panduan migrasi tambahan yang tidak dikategorikan ke dalam area fitur di panduan area fitur.

Kompilasi kondisional

Info di bagian ini mungkin berguna jika Anda berencana menggunakan file kode sumber yang sama di UWP dan proyek SDK Aplikasi Windows.

Dalam kode sumber C# dalam proyek SDK Aplikasi Windows, Anda dapat menggunakan direktif pra-prosesor dengan simbol WINDOWS_UWP untuk melakukan kompilasi bersyariah.

#if !WINDOWS_UWP
    // Win32/Desktop code, including Windows App SDK code
#else
    // UWP code
#endif

Dalam kode sumber C++/WinRT dalam proyek SDK Aplikasi Windows, Anda dapat menggunakan direktif pra-prosesor dengan WINAPI_FAMILY_PC_APP untuk melakukan hal yang sama. Atau Anda dapat menggunakan WINAPI_FAMILY_DESKTOP_APP sebagai gantinya. Komentar dalam winapifamily.h file header menunjukkan bahwa WINAPI_FAMILY_APP harus dianggap tidak digunakan lagi.

#if (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
    // Win32/Desktop code, including Windows App SDK code
#else
    // UWP code
#endif

Anda juga dapat menggunakan kompilasi bersyarah dalam markup XAML.

<Application
    ...
    xmlns:nouwp="condition:!WINDOWS_UWP"
    mc:Ignorable="nouwp">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!--Not Needed for UWP-->
                <nouwp:XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
                 <!--Other merged dictionaries here--> 
            </ResourceDictionary.MergedDictionaries>
             <!--Other app resources here--> 
        </ResourceDictionary>
    </Application.Resources>
</Application>

Lihat juga Kompilasi bersyar.

Awakutu

Selama proses migrasi, Anda mungkin menemukan aplikasi dalam status di mana markup XAML Anda memiliki referensi ke kunci sumber daya XAML, tetapi Anda belum menentukan kunci tersebut. Kondisi seperti itu menghasilkan crash run-time yang mungkin tidak mudah untuk debug. Tetapi dalam build debug, pesan tentang kunci sumber daya yang hilang muncul di Visual Studio melalui output debug di panel Output . Jadi jalankan aplikasi Anda di bawah debugger, dan perhatikan pesan tersebut.

Membatalkan pendaftaran penanganan aktivitas (C++/WinRT)

Dalam proyek C++/WinRT, Anda dapat mencabut (membatalkan pendaftaran) penanganan aktivitas secara manual seperti SizeChanged (untuk detail selengkapnya, dan contoh kode, lihat Mencabut delegasi terdaftar). Tetapi alternatif untuk mencabut secara manual—dan yang dapat Anda pertimbangkan jika Anda mengalami masalah dengan pencabutan secara manual—adalah menggunakan pencabut peristiwa otomatis C++/WinRT. Sekali lagi, detail lebih lanjut dan contoh kode di Mencabut delegasi terdaftar.

Lihat Juga