Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini berlaku untuk: ✔️ .NET 6.0 SDK dan versi yang lebih baru
Install
Untuk menginstal versi rilis terbaru dari dotnet-dsrouterpaket NuGet, gunakan perintah dotnet tool install:
dotnet tool install --global dotnet-dsrouter
Synopsis
dotnet-dsrouter [-?, -h, --help] [--version] <command>
Description
The dotnet-dsrouter menghubungkan alat diagnostik seperti dotnet-trace dan dotnet-counters ke aplikasi .NET yang berjalan di Android, iOS, dan tvOS, baik berjalan sebagai emulator, simulator, atau pada perangkat itu sendiri. Alat diagnostik menggunakan komunikasi antarproses lokal (IPC) (Named Pipe, Unix Domain Socket) untuk terhubung dan berkomunikasi dengan runtime .NET. Aplikasi .NET yang berjalan di lingkungan terkotakpasir pada emulator, simulator, dan perangkat memerlukan cara alternatif untuk berkomunikasi.
dotnet-dsrouter menyisipkan dirinya sendiri di antara alat diagnostik yang ada dan aplikasi seluler .NET, serta membuat representasi lokal dari aplikasi tersebut.
dotnet-dsrouter memungkinkan alat diagnostik untuk berkomunikasi dengan runtime .NET jarak jauh seakan-akan berjalan pada mesin lokal.
Komunikasi antara alat diagnostik dan dotnet-dsrouter menggunakan IPC yang sama (Named Pipe, Unix Domain Socket) seperti yang digunakan saat menyambungkan ke runtime .NET lokal.
dotnet-dsrouter menggunakan TCP/IP dalam komunikasinya dengan runtime .NET jarak jauh dan mendukung beberapa skenario konektivitas yang berbeda untuk menangani berbagai kebutuhan dan persyaratan yang digunakan oleh platform yang berbeda.
dotnet-dsrouter juga menerapkan dukungan tambahan untuk menyederhanakan konfigurasi konektivitas saat berjalan di emulator, simulator, dan pada perangkat fisik yang terpasang melalui USB.
Note
dotnet-dsrouter ditujukan untuk pengembangan dan pengujian dan sangat disarankan untuk menjalankan dotnet-dsrouter melalui antarmuka loopback (misalnya, 127.0.0.1, [::1]). Fitur konektivitas dan kemampuan penerusan port dari dotnet-dsrouter menangani semua skenario menggunakan emulator lokal, simulator, atau perangkat fisik yang terhubung melalui USB.
Warning
Mengikat titik akhir server TCP ke apa pun kecuali antarmuka loopback (localhost, 127.0.0.1 atau [::1]) tidak disarankan. Koneksi apa pun ke titik akhir server TCP tidak akan diautentikasi dan tidak terenkripsi.
dotnet-dsrouter ditujukan untuk penggunaan pengembangan dan hanya boleh dijalankan dalam lingkungan pengembangan dan pengujian.
Penggunaan dotnet-dsrouter terperinci bersama dengan aplikasi seluler diuraikan oleh masing-masing .NET SDK. Dokumen ini hanya akan menyertakan beberapa contoh tentang cara menjalankan alat diagnostik terhadap aplikasi .NET yang berjalan di Android. Untuk informasi mendetail tentang konfigurasi dan skenario, baca Pelacakan Diagnostik.
Opsi
-?|-h|--helpTampilkan bantuan baris perintah.
--versionMenampilkan versi utilitas
dotnet-dsrouter.
Commands
| Command |
|---|
| dotnet-dsrouter client-server |
| dotnet-dsrouter server-server |
| dotnet-dsrouter server-client |
| dotnet-dsrouter client-client |
dotnet-dsrouter client-server
Mulai server diagnostik aplikasi .NET yang merutekan server IPC lokal dan klien TCP jarak jauh. Router dikonfigurasi menggunakan klien IPC (menghubungkan ke server IPC alat diagnostik) dan server TCP/IP (menerima klien TCP saat runtime).
Synopsis
dotnet-dsrouter client-server
[-ipcc|--ipc-client <ipcClient>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Opsi
-ipcc, --ipc-client <ipcClient>Menentukan alamat IPC server diagnostik alat diagnostik (
--diagnostic-portargumen). Router terhubung ke server IPC alat diagnostik saat menetapkan rute baru antara runtime dan alat diagnostik.-tcps, --tcp-server <tcpServer>Menentukan alamat TCP/IP router menggunakan format
[host]:[port]. Router dapat mengikat satu (127.0.0.1,[::1],0.0.0.0,[::], alamat IPv4, alamat IPv6, nama host) atau semua antarmuka (*). Meluncurkan runtime dengan menggunakan variabel lingkunganDOTNET_DiagnosticPortsdan menghubungkan server TCP router saat proses startup.-rt, --runtime-timeout <runtimeTimeout>Secara otomatis mematikan router jika tidak ada runtime yang tersambung ke router sebelum detik batas waktu yang ditentukan. Jika tidak ditentukan, router tidak akan memicu pematian otomatis.
-v, --verbose <verbose>Mengaktifkan pengelogan verbose (debug|pelacakan).
-fp, --forward-port <forwardPort>Mengaktifkan penerusan port. Nilainya adalah
AndroidatauiOSuntukTcpClient, dan hanyaAndroiduntukTcpServer. Untuk Android, opsional atur$ANDROID_HOMEke jalur Android SDK yang valid.
dotnet-dsrouter server-server
Mulai server diagnostik aplikasi .NET yang merutekan klien IPC lokal dan klien TCP jarak jauh. Router dikonfigurasi menggunakan server IPC (menyambungkan dengan alat diagnostik) dan server TCP/IP (menerima klien TCP runtime).
Synopsis
dotnet-dsrouter server-server
[-ipcs|--ipc-server <ipcServer>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Opsi
-ipcs, --ipc-server <ipcServer>Alamat IPC diagnostik server yang akan dialihkan. Router menerima koneksi IPC dari alat diagnostik yang membangun rute baru antara runtime dan alat diagnostik. Jika tidak ditentukan, router akan menggunakan jalur server diagnostik IPC default.
-tcps, --tcp-server <tcpServer>Alamat TCP/IP router dalam format
[host]:[port]. Router dapat mengikat satu (127.0.0.1,[::1],0.0.0.0,[::], alamat IPv4, alamat IPv6, nama host) atau semua antarmuka (*). Jalankan runtime dengan menggunakan variabel lingkunganDOTNET_DiagnosticPortsuntuk menghubungkan server TCP router saat startup.-rt, --runtime-timeout <runtimeTimeout>Secara otomatis mematikan router jika tidak ada runtime yang terhubung ke router sebelum periode waktu yang ditentukan (detik). Jika tidak ditentukan, router tidak akan memicu pematian otomatis.
-v, --verbose <verbose>Mengaktifkan pencatatan verbose (debug|lacak).
-fp, --forward-port <forwardPort>Mengaktifkan penerusan port. Nilainya adalah
AndroidatauiOSuntukTcpClient, dan hanyaAndroiduntukTcpServer. Untuk Android, opsional atur$ANDROID_HOMEke jalur Android SDK yang valid.
dotnet-dsrouter server-client
Mulai server diagnostik aplikasi .NET yang merutekan klien IPC lokal dan server TCP jarak jauh. Router dikonfigurasi menggunakan server IPC (berkoneksi dengan alat diagnostik) dan klien TCP/IP (terhubung ke server TCP saat runtime).
Synopsis
dotnet-dsrouter server-client
[-ipcs|--ipc-server <ipcServer>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Opsi
-ipcs, --ipc-server <ipcServer>Alamat IPC server diagnostik yang akan dirutekan. Router menerima koneksi IPC dari alat diagnostik yang membangun rute baru antara runtime dan alat diagnostik. Jika tidak ditentukan, router akan menggunakan jalur server diagnostik IPC default.
-tcpc, --tcp-client <tcpClient>Alamat TCP/IP runtime dalam format
[host]:[port]. Router dapat menyambungkan127.0.0.1,[::1], alamat IPv4, alamat IPv6, alamat nama host. Luncurkan runtime menggunakanDOTNET_DiagnosticPortsvariabel lingkungan untuk menyiapkan pendengar.-rt, --runtime-timeout <runtimeTimeout>Secara otomatis mematikan router jika tidak ada runtime yang terhubung ke router sebelum batas waktu yang ditentukan (dalam hitungan detik). Jika tidak ditentukan, router tidak akan memicu pematian otomatis.
-v, --verbose <verbose>Mengaktifkan pencatatan log rinci (debug|trace).
-fp, --forward-port <forwardPort>Mengaktifkan penerusan port. Nilainya adalah
AndroidatauiOSuntukTcpClient, dan hanyaAndroiduntukTcpServer. Untuk Android, opsional atur$ANDROID_HOMEke jalur Android SDK yang valid.
dotnet-dsrouter client-client
Mulai server diagnostik aplikasi .NET merutekan server IPC lokal dan server TCP jarak jauh. Router dikonfigurasi menggunakan klien IPC (terhubung ke server IPC untuk alat diagnostik) dan klien TCP/IP (terhubung ke server TCP runtime).
Synopsis
dotnet-dsrouter client-client
[-ipcc|--ipc-client <ipcClient>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Opsi
-ipcc, --ipc-client <ipcClient>Alamat IPC server diagnostik alat diagnostik (
--diagnostic-port argument). Router terhubung ke server IPC alat diagnostik saat menjalin rute baru antara runtime dan alat diagnostik.-tcpc, --tcp-client <tcpClient>Alamat TCP/IP runtime dalam format
[host]:[port]. Router dapat menyambungkan127.0.0.1,[::1], alamat IPv4, alamat IPv6, alamat nama host. Luncurkan runtime menggunakanDOTNET_DiagnosticPortsvariabel lingkungan untuk menyiapkan listener.-rt, --runtime-timeout <runtimeTimeout>Secara otomatis mematikan router jika tidak ada runtime yang tersambung ke router sebelum batas waktu yang ditentukan (detik). Jika tidak ditentukan, router tidak akan memicu pematian otomatis.
-v, --verbose <verbose>Mengaktifkan pencatatan rinci (debug|trace).
-fp, --forward-port <forwardPort>Mengaktifkan penerusan port. Nilainya adalah
AndroidatauiOSuntukTcpClient, dan hanyaAndroiduntukTcpServer. Untuk Android, opsional atur$ANDROID_HOMEke jalur Android SDK yang valid.
Mengumpulkan jejak startup menggunakan dotnet-trace dari aplikasi .NET yang berjalan di Android
Terkadang mungkin berguna untuk mengumpulkan jejak kerja aplikasi saat memulai. Langkah-langkah berikut menggambarkan proses melakukannya dengan menargetkan aplikasi .NET yang berjalan di Android. Karena dotnet-dsrouter dijalankan menggunakan penerusan port, skenario yang sama berfungsi terhadap aplikasi yang berjalan pada emulator lokal dan pada perangkat fisik yang terpasang melalui USB.
dotnet-dsrouter mencoba menemukan Android SDK secara otomatis dan adb perlu menyiapkan penerusan port. Secara opsional diatur $ANDROID_HOME untuk menentukan jalur Android SDK.
Luncurkan dotnet-dsrouter dalam mode server-server:
dotnet-dsrouter server-server -ipcs ~/mylocalport -tcps 127.0.0.1:9000 --forward-port Android &Atur
DOTNET_DiagnosticPortsvariabel lingkungan menggunakanAndroidEnvironment:Buat file di direktori yang sama dengan .csproj menggunakan nama seperti
app.env, tambahkan variabel lingkungan ke dalam file,DOTNET_DiagnosticPorts=127.0.0.1:9000,suspenddan sertakan berikutItemGroupke dalam .csproj:<ItemGroup Condition="'$(AndroidEnableProfiler)'=='true'"> <AndroidEnvironment Include="app.env" /> </ItemGroup>Dimungkinkan juga untuk mengatur
DOTNET_DiagnosticPortsmenggunakanadb shell setprop:adb shell setprop debug.mono.profile '127.0.0.1:9000,suspend'Buat dan luncurkan aplikasi menggunakan .NET Android SDK, dan aktifkan pelacakan dengan meneruskan
/p:AndroidEnableProfiler=trueke MSBuild. Karena aplikasi telah dikonfigurasi untuk menangguhkan saat startup, aplikasi akan terhubung kembali kedotnet-dsrouterlistener TCP/IP yang berjalan127.0.0.1:9000dan menunggu alat diagnostik tersambung sebelum melanjutkan eksekusi aplikasi.Mulai
dotnet-tracedalam mode pengumpulan, menyambungkan ke server IPCdotnet-dsrouter, ~/mylocalport:dotnet-trace collect --diagnostic-port ~/mylocalport,connect
dotnet-trace akan memulai sesi pelacakan dan melanjutkan aplikasi yang sekarang akan terus dijalankan. Aliran peristiwa akan mulai mengalir dari aplikasi seluler, melalui dotnet-dsrouter ke file dotnet-trace nettrace. Setelah selesai melacak, tekan Enter untuk memastikan sesi pelacakan ditutup dengan benar memastikan file nettrace menyertakan semua data yang diperlukan sebelum aplikasi ditutup.
Dimungkinkan untuk menjalankan beberapa sesi pelacakan terhadap aplikasi yang berjalan yang sama dari waktu ke waktu, biarkan dotnet-dsrouter berjalan dan jalankan dotnet-trace kembali ketika sesi pelacakan baru diperlukan.
dotnet-dsrouter dapat dibiarkan berjalan di latar belakang dan digunakan kembali jika aplikasi dikonfigurasi untuk terhubung menggunakan alamat dan portnya.
dotnet-dsrouter hanya terkait dengan satu aplikasi yang sedang berjalan pada satu waktu tertentu. Jika perlu melacak beberapa aplikasi yang berbeda pada saat yang sama, setiap aplikasi perlu menggunakan instans dotnet-dsrouter masing-masing, dengan menyiapkan pasangan alamat IPC, TCP/IP unik di dotnet-dsrouter dan mengonfigurasi instans aplikasi yang berbeda untuk terhubung kembali ke instans dotnet-dsrouter yang unik.
Jika dotnet-dsrouter dijalankan dengan --forward-port yang menargetkan Android dan adb server, emulator, atau perangkat dimulai ulang, maka semua instans dotnet-dsrouter perlu dimulai ulang juga untuk memulihkan aturan penerusan port.
Setelah selesai menggunakan dotnet-dsrouter, tekan Q atau Ctrl + C untuk keluar dari aplikasi.
Note
Saat menjalankan dotnet-dsrouter pada Windows, ia akan menggunakan Named Pipes untuk saluran IPC-nya. Ganti ~/mylocalport dengan mylocalport dalam contoh di atas saat berjalan di Windows.
Note
Port TCP/IP 9000 hanyalah contoh. Port TCP/IP gratis apa pun dapat digunakan.
Note
Unix Domain Socket ~/mylocalport hanyalah contoh. Jalur file Unix Domain Socket gratis dapat digunakan.
Mengumpulkan jejak menggunakan dotnet-trace dari aplikasi .NET yang berjalan di Android
Jika tidak perlu mengumpulkan pelacakan selama startup aplikasi, dimungkinkan untuk meluncurkan aplikasi dalam nosuspend mode, yang berarti runtime tidak akan memblokir saat startup menunggu alat diagnostik tersambung sebelum melanjutkan eksekusi. Sebagian besar skenario yang dijelaskan di atas juga berlaku untuk mode ini, cukup ganti suspend dengan nosuspend dalam DOTNET_DiagnosticPorts variabel lingkungan untuk meluncurkan aplikasi dalam nosuspend mode.