Menyebarkan dan menelusuri kesalahan aplikasi UWP

Artikel ini memandu Anda melalui langkah-langkah untuk menargetkan berbagai target penyebaran dan penelusuran kesalahan.

Microsoft Visual Studio memungkinkan Anda menyebarkan dan men-debug aplikasi Platform Windows Universal (UWP) Anda di berbagai perangkat Windows 10. Visual Studio akan menangani proses pembuatan dan pendaftaran aplikasi pada perangkat target.

Memilih target penyebaran

Untuk memilih target, buka menu drop-down target debug di samping tombol Mulai Penelusuran Kesalahan dan pilih target mana yang ingin Anda sebarkan aplikasi Anda. Setelah target dipilih, pilih Mulai Debugging (F5) untuk menyebarkan dan men-debug pada target tersebut, atau pilih Ctrl+F5 untuk hanya menyebarkan ke target tersebut.

Debug device target list

  • Simulator akan menyebarkan aplikasi ke lingkungan yang disimulasikan pada komputer pengembangan Anda saat ini. Opsi ini hanya tersedia jika Versi Min. Platform Target aplikasi Anda kurang dari atau sama dengan sistem operasi pada komputer pengembangan Anda.
  • Komputer Lokal akan menyebarkan aplikasi ke komputer pengembangan Anda saat ini. Opsi ini hanya tersedia jika Versi Min. Platform Target aplikasi Anda kurang dari atau sama dengan sistem operasi pada komputer pengembangan Anda.
  • Komputer Jarak Jauh akan memungkinkan Anda menentukan target jarak jauh untuk menyebarkan aplikasi. Informasi selengkapnya tentang penyebaran ke komputer jarak jauh dapat ditemukan di Menentukan perangkat jarak jauh.
  • Perangkat akan menyebarkan aplikasi ke perangkat yang terhubung dengan USB. Perangkat harus dibuka kuncinya oleh pengembang dan layar tidak terkunci.
  • Target Emulator akan mem-boot dan menyebarkan aplikasi ke emulator dengan konfigurasi yang ditentukan dalam nama. Emulator hanya tersedia di komputer berkemampuan Hyper-V yang menjalankan Windows 8.1 atau lebih tinggi.

Men-debug aplikasi yang disebarkan

Visual Studio juga dapat melampirkan ke proses aplikasi UWP yang sedang berjalan dengan memilih Debug, lalu Lampirkan ke Proses. Melampirkan ke proses yang sedang berjalan tidak memerlukan proyek Visual Studio asli, tetapi memuat simbol proses akan membantu secara signifikan saat men-debug proses yang tidak Anda miliki kode aslinya.

Selain itu, paket aplikasi apa pun yang diinstal dapat dilampirkan dan di-debug dengan memilih Debug, Lainnya, lalu Debug Paket Aplikasi yang Diinstal.

Debug Installed App Package dialog box

Memilih Jangan luncurkan , tetapi debug kode saya saat dimulai akan menyebabkan debugger Visual Studio dilampirkan ke aplikasi UWP Saat Anda meluncurkannya pada waktu kustom. Ini adalah cara efektif untuk men-debug jalur kontrol dari metode peluncuran yang berbeda, seperti aktivasi protokol dengan parameter kustom.

Aplikasi UWP dapat dikembangkan dan dikompilasi pada Windows 8.1 atau yang lebih baru, tetapi memerlukan Windows 10 untuk dijalankan. Jika Anda mengembangkan aplikasi UWP pada PC Windows 8.1, Anda dapat men-debug aplikasi UWP dari jarak jauh yang berjalan di perangkat Windows 10 lain, asalkan host dan komputer target berada di LAN yang sama. Untuk melakukan ini, unduh dan instal Alat Jarak Jauh untuk Visual Studio di kedua komputer. Versi yang diinstal harus cocok dengan versi Visual Studio yang sudah ada yang telah Anda instal, dan arsitektur yang Anda pilih (x86, x64) juga harus cocok dengan aplikasi target Anda.

Tata letak paket

Pada Visual Studio 2015 Update 3, kami telah menambahkan opsi bagi pengembang untuk menentukan jalur tata letak untuk aplikasi UWP mereka. Ini menentukan di mana tata letak paket disalin ke pada disk saat Anda membuat aplikasi. Secara default, properti ini diatur relatif terhadap direktori akar proyek. Jika Anda tidak mengubah properti ini, perilaku akan tetap sama seperti yang ada untuk versi Visual Studio sebelumnya.

Properti ini dapat dimodifikasi di properti Debug proyek.

Jika Anda ingin menyertakan semua file tata letak dalam paket saat membuat paket untuk aplikasi, Anda harus menambahkan properti <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>proyek .

Untuk menambahkan properti ini:

  1. Klik kanan proyek, lalu pilih Bongkar Proyek.
  2. Klik kanan proyek, lalu pilih Edit [projectname].xxproj (.xxproj akan berubah tergantung pada bahasa proyek).
  3. Tambahkan properti, lalu muat ulang proyek.

Menentukan perangkat jarak jauh

C# dan Microsoft Visual Basic

Untuk menentukan komputer jarak jauh untuk aplikasi C# atau Microsoft Visual Basic, pilih Komputer Jarak Jauh di drop-down target debug. Dialog Remote Koneksi ions akan muncul, yang akan memungkinkan Anda menentukan alamat IP atau memilih perangkat yang ditemukan. Secara default, mode autentikasi Universal dipilih. Untuk menentukan mode autentikasi mana yang akan digunakan, lihat Mode autentikasi.

Remote Connections dialog box

Untuk kembali ke dialog ini, Anda dapat membuka properti proyek dan masuk ke tab Debug . Dari sana, pilih Temukan di samping Komputer jarak jauh:

Debug tab

Untuk menyebarkan aplikasi ke PC jarak jauh Pembaruan pra-Kreator, Anda juga perlu mengunduh dan menginstal Alat Jarak Jauh Visual Studio pada PC target. Untuk petunjuk lengkap, lihat Instruksi PC jarak jauh. Namun, pada PC Pembaruan Pembuat juga mendukung penyebaran jarak jauh.

C++ dan JavaScript

Untuk menentukan target komputer jarak jauh untuk aplikasi UWP C++ atau JavaScript:

  1. Di Penjelajah Solusi, klik kanan proyek, lalu klik Properti.
  2. Buka Pengaturan penelusuran kesalahan, dan di bawah Debugger untuk diluncurkan, pilih Komputer Jarak Jauh.
  3. Masukkan Nama Mesin (atau klik Temukan untuk menemukannya), lalu atur properti Jenis Autentikasi.

Debug property pages

Setelah komputer ditentukan, Anda dapat memilih Komputer Jarak Jauh di drop-down target debug untuk kembali ke komputer yang ditentukan. Hanya satu komputer jarak jauh yang dapat dipilih pada satu waktu.

Instruksi PC jarak jauh

Catatan

Instruksi ini hanya diperlukan untuk versi Windows 10 yang lebih lama. Pada Pembaruan Pembuat, PC dapat diperlakukan seperti Xbox. Artinya, dengan mengaktifkan Penemuan Perangkat di menu Mode Pengembang PC dan menggunakan Autentikasi Universal untuk memasangkan PIN dan terhubung dengan PC.

Untuk menyebarkan ke PC jarak jauh Pembaruan Pra-Pembuat, PC target harus menginstal Alat Jarak Jauh Visual Studio. PC jarak jauh juga harus menjalankan versi Windows yang lebih besar dari atau sama dengan aplikasi Anda Target Platform Min. Versi properti. Setelah menginstal alat jarak jauh, Anda harus meluncurkan debugger jarak jauh pada PC target.

Untuk melakukan ini, cari Debugger Jarak Jauh di menu Mulai , buka, dan jika diminta, izinkan debugger mengonfigurasi pengaturan firewall Anda. Secara default, debugger diluncurkan dengan autentikasi Windows. Ini akan memerlukan kredensial pengguna jika pengguna yang masuk tidak sama di kedua PC.

Untuk mengubahnya menjadi tidak ada autentikasi, di Debugger Jarak Jauh, buka Alat ->Opsi, lalu atur ke Tanpa Autentikasi. Setelah debugger jarak jauh disiapkan, Anda juga harus memastikan bahwa Anda telah mengatur perangkat host ke Mode Pengembang. Setelah itu, Anda dapat menyebarkan dari komputer pengembangan Anda.

Untuk informasi selengkapnya, lihat halaman Pusat Unduhan Visual studio.

Meneruskan argumen debug baris perintah

Di Visual Studio 2019, Anda dapat meneruskan argumen debug baris perintah saat mulai men-debug aplikasi UWP. Anda dapat mengakses argumen debug baris perintah dari parameter args dalam metode OnLaunched dari kelas Aplikasi . Untuk menentukan argumen debug baris perintah, buka properti proyek dan navigasikan ke tab Debug .

Catatan

Ini tersedia di Visual Studio 2017 (versi 15.1) untuk C#, VB, dan C++. JavaScript tersedia di versi yang lebih baru. Argumen debug baris perintah tersedia untuk semua jenis penyebaran kecuali untuk Simulator.

Untuk proyek UWP C# dan VB, Anda akan melihat argumen Baris perintah: bidang di bawah Opsi mulai.

Command line arguments

Untuk proyek C++ dan JS UWP, Anda akan melihat Argumen Baris Perintah sebagai bidang di Properti Debugging.

Screenshot of the App 4 Property Pages with Configuration Properties > Debugging option selected showing Command Line Arguments property isted in the table.

Setelah menentukan argumen baris perintah, Anda dapat mengakses nilai argumen dalam metode OnLaunched Aplikasi. Arg objek LaunchActivatedEventArgs akan memiliki properti Argumen dengan nilai yang diatur ke teks di bidang Argumen Baris Perintah.

Screenshot of command line arguments for C++ and JS.

Mode autentikasi

Ada tiga mode autentikasi untuk penyebaran komputer jarak jauh:

  • Universal (Protokol Tidak Terenkripsi): Gunakan mode autentikasi ini setiap kali Anda menyebarkan ke perangkat jarak jauh. Saat ini, ini untuk perangkat IoT, perangkat Xbox, dan perangkat HoloLens, serta PC dengan Windows Versi 1703 (Pembaruan Pembuat) atau yang lebih baru. Universal (Protokol Tidak Terenkripsi) hanya boleh digunakan pada jaringan tepercaya. Koneksi debugging rentan terhadap pengguna berbahaya yang dapat mencegat dan mengubah data yang diteruskan antara pengembangan dan komputer jarak jauh.
  • Windows: Mode autentikasi ini hanya dimaksudkan untuk digunakan untuk PC jarak jauh (desktop atau laptop) yang menjalankan Alat Jarak Jauh Visual Studio. Gunakan mode autentikasi ini saat Anda memiliki akses ke kredensial pengguna yang masuk dari komputer target. Ini adalah saluran yang paling aman untuk penyebaran jarak jauh.
  • Tidak Ada: Mode autentikasi ini hanya dimaksudkan untuk digunakan untuk PC jarak jauh (desktop atau laptop) yang menjalankan Alat Jarak Jauh Visual Studio. Gunakan mode autentikasi ini saat Anda menyiapkan mesin uji di lingkungan yang memiliki akun pengujian yang masuk dan Anda tidak dapat memasukkan kredensial. Pastikan bahwa pengaturan debugger jarak jauh diatur untuk tidak menerima autentikasi.

Opsi penyebaran jarak jauh tingkat lanjut

Pada rilis Visual Studio 2015 Update 3, dan Windows 10 Anniversary Update, ada opsi penyebaran jarak jauh tingkat lanjut baru untuk perangkat Windows 10 tertentu. Opsi penyebaran jarak jauh tingkat lanjut dapat ditemukan di menu Debug untuk properti proyek.

Properti baru meliputi:

  • Jenis penyebaran
  • Jalur pendaftaran paket
  • Simpan semua file di perangkat - bahkan file yang tidak lagi menjadi bagian dari tata letak Anda

Persyaratan

Untuk menggunakan opsi penyebaran jarak jauh tingkat lanjut, Anda harus memenuhi persyaratan berikut:

  • Memiliki Visual Studio 2015 Pembaruan 3 atau beberapa rilis Visual Studio yang lebih baru diinstal dengan Windows 10 Tools 1.4.1 atau yang lebih baru (yang mencakup Windows 10 Anniversary Update SDK) Kami sarankan Anda menggunakan versi terbaru Visual Studio dengan pembaruan untuk memastikan Anda mendapatkan semua fitur pengembangan dan keamanan terbaru.
  • Menargetkan perangkat jarak jauh Windows 10 Anniversary Update Xbox atau Windows 10 Creators Update PC
  • Gunakan mode Autentikasi Universal

Halaman properti

Untuk aplikasi UWP C# atau Visual Basic, halaman properti akan terlihat seperti berikut ini.

CS or VB properties

Untuk aplikasi C++ UWP, halaman properti akan terlihat seperti berikut ini.

Cpp properties

Menyalin file ke perangkat

Salin file ke perangkat akan mentransfer file secara fisik melalui jaringan ke perangkat jarak jauh. Ini akan menyalin dan mendaftarkan tata letak paket yang dibangun ke jalur folder Tata Letak. Visual Studio akan menyimpan file yang disalin ke perangkat agar sinkron dengan file di proyek Visual Studio Anda; namun, ada opsi untuk menyimpan semua file di perangkat - bahkan file yang tidak lagi menjadi bagian dari tata letak Anda. Memilih opsi ini berarti bahwa file apa pun yang sebelumnya disalin ke perangkat jarak jauh, tetapi tidak lagi menjadi bagian dari proyek Anda, akan tetap berada di perangkat jarak jauh.

Jalur pendaftaran paket yang ditentukan ketika Anda menyalin file ke perangkat adalah lokasi fisik pada perangkat jarak jauh tempat file disalin. Jalur ini dapat ditentukan sebagai jalur relatif apa pun. Lokasi tempat file disebarkan akan relatif terhadap akar file pengembangan yang akan bervariasi tergantung pada perangkat target. Menentukan jalur ini berguna untuk beberapa pengembang yang berbagi perangkat yang sama dan mengerjakan paket dengan beberapa varian build.

Catatan

Salin file ke perangkat saat ini didukung pada Xbox yang menjalankan Windows 10 Anniversary Update dan PC yang menjalankan Windows 10 Creators Update .

Pada perangkat jarak jauh, tata letak akan disalin ke lokasi default berikut: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

Mendaftarkan tata letak dari jaringan

Ketika Anda memilih untuk mendaftarkan tata letak dari jaringan, Anda dapat membangun tata letak paket Anda ke berbagi jaringan lalu mendaftarkan tata letak pada perangkat jarak jauh langsung dari jaringan. Ini mengharuskan Anda menentukan jalur folder tata letak (berbagi jaringan) yang dapat diakses dari perangkat jarak jauh. Properti jalur folder Tata Letak adalah jalur yang diatur relatif terhadap PC yang menjalankan Visual Studio, sementara properti Jalur pendaftaran paket adalah jalur yang sama, tetapi ditentukan relatif terhadap perangkat jarak jauh.

Agar berhasil mendaftarkan tata letak dari jaringan, Anda harus terlebih dahulu menjadikan jalur folder Tata Letak sebagai folder jaringan bersama. Untuk melakukan ini, klik kanan folder di File Explorer, pilih Bagikan dengan > Orang tertentu, lalu pilih pengguna yang ingin Anda bagikan foldernya. Ketika Anda mencoba mendaftarkan tata letak dari jaringan, Anda akan dimintai kredensial untuk memastikan bahwa Anda mendaftar sebagai pengguna dengan akses ke berbagi.

Untuk bantuan terkait hal ini, lihat contoh berikut:

  • Contoh 1 (folder tata letak lokal, dapat diakses sebagai berbagi jaringan):

    • Jalur folder tata letak = D:\Layouts\App1
    • Jalur pendaftaran paket = \\NETWORK-SHARE\Layouts\App1
  • Contoh 2 (folder tata letak jaringan):

    • Jalur folder tata letak = \\NETWORK-SHARE\Layouts\App1
    • Jalur pendaftaran paket = \\NETWORK-SHARE\Layouts\App1

Ketika Anda pertama kali mendaftarkan tata letak dari jaringan, kredensial Anda akan di-cache pada perangkat target sehingga Anda tidak perlu berulang kali masuk. Untuk menghapus kredensial cache, Anda dapat menggunakan alat WinAppDeployCmd.exe dari Windows 10 SDK dengan perintah deletecreds.

Anda tidak dapat memilih simpan semua file pada perangkat ketika Anda mendaftarkan tata letak dari jaringan karena tidak ada file yang disalin secara fisik ke perangkat jarak jauh.

Catatan

Tata letak daftar dari jaringan saat ini didukung pada Xbox yang menjalankan Windows 10 Anniversary Update dan PC yang menjalankan Windows 10 Creators Update.

Pada perangkat jarak jauh, tata letak terdaftar ke lokasi default berikut tergantung pada keluarga perangkat: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles - ini adalah symlink ke jalur pendaftaran paket PC tidak menggunakan symlink dan sebaliknya langsung mendaftarkan jalur pendaftaran paket

Opsi penelusuran kesalahan

Pada Windows 10, performa startup aplikasi UWP ditingkatkan dengan meluncurkan secara proaktif dan kemudian menangguhkan aplikasi dalam teknik yang disebut prelaunch. Banyak aplikasi tidak perlu melakukan sesuatu yang istimewa untuk bekerja dalam mode ini, tetapi beberapa aplikasi mungkin perlu menyesuaikan perilakunya. Untuk membantu men-debug masalah apa pun di jalur kode ini, Anda dapat mulai men-debug aplikasi dari Visual Studio dalam mode pra-luncur.

Penelusuran kesalahan didukung baik dari proyek Visual Studio (Debug ->Target Debug Lainnya ->Debug Universal Windows App Prelaunch), dan untuk aplikasi yang sudah diinstal pada mesin (Debug ->Target Debug Lainnya ->Debug Paket Aplikasi terinstal dengan memilih kotak centang Aktifkan aplikasi dengan Prelaunch). Untuk informasi selengkapnya, lihat Debug UWP Prelaunch.

Anda dapat mengatur opsi penyebaran berikut pada halaman properti Debug dari proyek startup:

  • Perbolehkan loopback jaringan lokal

    Untuk alasan keamanan, aplikasi UWP yang diinstal dengan cara standar tidak diizinkan untuk melakukan panggilan jaringan ke perangkat tempat aplikasi diinstal. Secara default, penyebaran Visual Studio membuat pengecualian dari aturan ini untuk aplikasi yang disebarkan. Pengecualian ini memungkinkan Anda menguji prosedur komunikasi pada satu komputer. Sebelum mengirimkan aplikasi ke Microsoft Store, Anda harus menguji aplikasi tanpa pengecualian.

    Untuk menghapus pengecualian loopback jaringan dari aplikasi:

    • Pada halaman properti C# dan Visual Basic Debug , kosongkan kotak centang Izinkan perulangan jaringan lokal.
    • Pada halaman properti Penelusuran Kesalahan JavaScript dan C++, atur nilai Izinkan Perulangan Jaringan Lokal ke Tidak.
  • Jangan luncurkan, tetapi debug kode saya saat dimulai / Luncurkan Aplikasi

    Untuk mengonfigurasi penyebaran untuk memulai sesi penelusuran kesalahan secara otomatis saat aplikasi diluncurkan:

    • Pada halaman properti C# dan Visual Basic Debug, pilih kotak centang Jangan luncurkan, tetapi debug kode saya saat dimulai.
    • Pada halaman properti Penelusuran Kesalahan JavaScript dan C++, atur nilai Luncurkan Aplikasi ke Ya.

Simbol

File simbol berisi berbagai data yang sangat berguna saat men-debug kode, seperti variabel, nama fungsi, dan alamat titik masuk, memungkinkan Anda untuk lebih memahami pengecualian dan urutan eksekusi callstack. Simbol untuk sebagian besar varian Windows tersedia melalui Microsoft Symbol Server atau dapat diunduh untuk pencarian offline yang lebih cepat di Unduh Paket Simbol Windows.

Untuk mengatur opsi simbol untuk Visual Studio, pilih Opsi Alat>, lalu buka Simbol Debugging > di jendela dialog.

Options dialog box

Untuk memuat simbol dalam sesi debugging dengan WinDbg, atur variabel simpati ke lokasi paket simbol. Misalnya, menjalankan perintah berikut akan memuat simbol dari Microsoft Symbol Server, lalu menyimpannya di direktori C:\Symbols:

.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload

Anda dapat menambahkan lebih banyak jalur dengan menggunakan pemisah ‘;’ , atau menggunakan .sympath+ perintah . Untuk operasi simbol tingkat lanjut yang menggunakan WinDbg, lihat Simbol Publik dan Privat.

WinDbg

WinDbg adalah debugger kuat yang dikirim sebagai bagian dari Alat Debugging untuk rangkaian Windows, yang disertakan dalam Windows SDK. Penginstalan Windows SDK memungkinkan Anda menginstal Alat Penelusuran Kesalahan untuk Windows sebagai produk mandiri. Meskipun sangat berguna untuk men-debug kode asli, kami tidak merekomendasikan WinDbg untuk aplikasi yang ditulis dalam kode terkelola atau HTML5.

Untuk menggunakan WinDbg dengan aplikasi UWP, Anda harus terlebih dahulu menonaktifkan Process Lifetime Management (PLM) untuk paket aplikasi Anda dengan menggunakan PLMDebug, seperti yang dijelaskan dalam Alat pengujian dan penelusuran kesalahan untuk Process Lifetime Management (PLM).

plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"

Berbeda dengan Visual Studio, sebagian besar fungsionalitas inti WinDbg bergantung pada penyediaan perintah ke jendela perintah. Perintah yang disediakan memungkinkan Anda melihat status eksekusi, menyelidiki crash dump mode pengguna, dan debug dalam berbagai mode.

Salah satu perintah paling populer di WinDbg adalah !analyze -v, yang digunakan untuk mengambil sejumlah informasi verbose tentang pengecualian saat ini, termasuk:

  • FAULTING_IP: penunjuk instruksi pada saat kesalahan
  • EXCEPTION_RECORD: alamat, kode, dan bendera pengecualian saat ini
  • STACK_TEXT: pelacakan tumpukan sebelum pengecualian

Untuk daftar lengkap semua perintah WinDbg, lihat Perintah Debugger.