Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek se vztahuje na: ✔️ .NET 6.0 SDK a novější verze
Instalace
Pokud chcete nainstalovat nejnovější verzi dotnet-dsrouterbalíčku NuGet, použijte příkaz dotnet tool install :
dotnet tool install --global dotnet-dsrouter
Synopse
dotnet-dsrouter [-?, -h, --help] [--version] <command>
Popis
dotnet-dsrouter Diagnostické nástroje, jako jsou dotnet-tracedotnet-counters aplikace .NET, které běží na Androidu, iOSu a tvOSu, bez ohledu na to, jestli běží jako emulátor, simulátor nebo samotné zařízení. Diagnostické nástroje používají k připojení a komunikaci s modulem runtime .NET místní komunikaci mezi procesy (IPC) (Pojmenované potrubí, Unix Domain Socket). Aplikace .NET spuštěné v prostředích v izolovaném prostoru (sandbox) v emulátorech, simulátorech a zařízeních potřebují alternativní způsoby komunikace. Vloží dotnet-dsrouter se mezi existující diagnostické nástroje a mobilní aplikace .NET a vytvoří místní reprezentaci aplikace. Diagnostické dotnet-dsrouter nástroje umožňují komunikovat se vzdáleným modulem runtime .NET, jako by byl spuštěný na místním počítači.
Komunikace mezi diagnostickými nástroji a dotnet-dsrouter používá stejný IPC (Pojmenovaný kanál, Unix Domain Socket) jako při připojování k místnímu modulu runtime .NET.
dotnet-dsrouter využívá protokol TCP/IP ke komunikaci se vzdáleným modulem runtime .NET a podporuje několik různých scénářů připojení ke zpracování různých potřeb a požadavků používaných různými platformami.
dotnet-dsrouter Implementuje také další podporu pro zjednodušení konfigurace připojení při spuštění v emulátoru, simulátoru a na fyzickém zařízení připojeném přes USB.
Poznámka:
dotnet-dsrouterje určen pro vývoj a testování a důrazně se doporučuje spouštět dotnet-dsrouter přes rozhraní zpětné smyčky (například 127.0.0.1, ). [::1] Funkce připojení a funkce předávání portů pro zpracování všech scénářů pomocí místního emulátoru, simulátoru nebo fyzického zařízení připojeného dotnet-dsrouter přes USB.
Upozorňující
Vazba koncového bodu serveru TCP na cokoli kromě rozhraní zpětné smyčky (localhostnebo127.0.0.1) se [::1]. Všechna připojení ke koncovému bodu serveru TCP budou neověřená a nešifrovaná.
dotnet-dsrouter je určen pro použití při vývoji a měl by být spuštěn pouze ve vývojových a testovacích prostředích.
Podrobné využití dotnet-dsrouter společně s mobilními aplikacemi je popsáno příslušnými sadami .NET SDK. Tento dokument bude obsahovat jenom několik příkladů, jak spouštět diagnostické nástroje pro aplikace .NET běžící na Androidu. Podrobné informace o konfiguraci a scénářích najdete v tématu Trasování diagnostiky.
Možnosti
-?|-h|--helpZobrazuje nápovědu k příkazovému řádku.
--versionZobrazí verzi
dotnet-dsrouternástroje.
Příkazy
| Příkaz |
|---|
| dotnet-dsrouter client-server |
| dotnet-dsrouter server-server |
| dotnet-dsrouter server-client |
| dotnet-dsrouter client-client |
dotnet-dsrouter klient-server
Spusťte diagnostický server aplikace .NET, který směruje místní server IPC a vzdáleného klienta TCP. Směrovač se konfiguruje pomocí klienta IPC (připojení serveru IPC diagnostického nástroje) a serveru TCP/IP (přijetí modulu runtime klienta TCP).
Synopse
dotnet-dsrouter client-server
[-ipcc|--ipc-client <ipcClient>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Možnosti
-ipcc, --ipc-client <ipcClient>Určuje adresu IPC diagnostického serveru diagnostického nástroje (
--diagnostic-portargument). Směrovač se připojí k serveru IPC diagnostického nástroje při navazování nové trasy mezi modulem runtime a diagnostickým nástrojem.-tcps, --tcp-server <tcpServer>Určuje směrovač TCP/IP adresu pomocí formátu
[host]:[port]. Směrovač může svázat jedno rozhraní (127.0.0.1,[::1], ,0.0.0.0[::], IPv4 adresa, IPv6 adresa, název hostitele) nebo všechna rozhraní (*). Spustí modul runtime pomocíDOTNET_DiagnosticPortsproměnné prostředí a připojí server TCP směrovače během spouštění.-rt, --runtime-timeout <runtimeTimeout>Směrovač se automaticky vypne, pokud se k němu před zadaným časovým limitem (sekundy) nepřipojí žádný modul runtime. Pokud není zadaný, směrovač neaktivuje automatické vypnutí.
-v, --verbose <verbose>Povolí podrobné protokolování (ladění|trasování).
-fp, --forward-port <forwardPort>Povolí přesměrování portů. Hodnoty jsou
AndroidneboiOSproTcpClient, a pouzeAndroidproTcpServer. Před použitím této možnosti v Androidu nezapomeňte nastavitANDROID_SDK_ROOT.
dotnet-dsrouter server-server
Spusťte server diagnostiky aplikací .NET, který směruje místního klienta IPC a vzdáleného klienta TCP. Směrovač se konfiguruje pomocí serveru IPC (připojení pomocí diagnostických nástrojů) a serveru TCP/IP (příjem klienta TCP modulu runtime).
Synopse
dotnet-dsrouter server-server
[-ipcs|--ipc-server <ipcServer>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Možnosti
-ipcs, --ipc-server <ipcServer>Adresa IPC diagnostického serveru, která se má směrovat. Směrovač přijímá připojení IPC z diagnostických nástrojů, které vytvářejí novou trasu mezi modulem runtime a diagnostickým nástrojem. Pokud není zadaný, směrovač použije výchozí cestu diagnostického serveru IPC.
-tcps, --tcp-server <tcpServer>Směrovač TCP/IP adresa ve formátu
[host]:[port]. Směrovač může svázat jedno rozhraní (127.0.0.1,[::1], ,0.0.0.0[::], IPv4 adresa, IPv6 adresa, název hostitele) nebo všechna rozhraní (*). Spusťte modul runtime pomocíDOTNET_DiagnosticPortsproměnné prostředí a připojte server TCP směrovače během spouštění.-rt, --runtime-timeout <runtimeTimeout>Směrovač se automaticky vypne, pokud se k němu před zadaným časovým limitem (sekundy) nepřipojí žádný modul runtime. Pokud není zadaný, směrovač neaktivuje automatické vypnutí.
-v, --verbose <verbose>Povolí podrobné protokolování (ladění|trasování).
-fp, --forward-port <forwardPort>Povolí přesměrování portů. Hodnoty jsou
AndroidneboiOSproTcpClient, a pouzeAndroidproTcpServer. Před použitím této možnosti v Androidu nezapomeňte nastavitANDROID_SDK_ROOT.
dotnet-dsrouter serverový klient
Spusťte diagnostického serveru aplikace .NET směrování místního klienta IPC a vzdáleného serveru TCP. Směrovač se konfiguruje pomocí serveru IPC (připojení pomocí diagnostických nástrojů) a klienta TCP/IP (připojení k serveru TCP modulu runtime).
Synopse
dotnet-dsrouter server-client
[-ipcs|--ipc-server <ipcServer>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Možnosti
-ipcs, --ipc-server <ipcServer>Adresa IPC diagnostického serveru, která se má směrovat. Směrovač přijímá připojení IPC z diagnostických nástrojů, které vytvářejí novou trasu mezi modulem runtime a diagnostickým nástrojem. Pokud není zadaný, směrovač použije výchozí cestu diagnostického serveru IPC.
-tcpc, --tcp-client <tcpClient>Runtime TCP/IP adresa ve formátu
[host]:[port]. Směrovač se může připojit127.0.0.1, ,[::1]IPv4 adresa, adresa IPv6, adresy názvu hostitele. Spusťte modul runtime pomocíDOTNET_DiagnosticPortsproměnné prostředí k nastavení naslouchacího procesu.-rt, --runtime-timeout <runtimeTimeout>Směrovač se automaticky vypne, pokud se k němu před zadaným časovým limitem (sekundy) nepřipojí žádný modul runtime. Pokud není zadaný, směrovač neaktivuje automatické vypnutí.
-v, --verbose <verbose>Povolí podrobné protokolování (ladění|trasování).
-fp, --forward-port <forwardPort>Povolí přesměrování portů. Hodnoty jsou
AndroidneboiOSproTcpClient, a pouzeAndroidproTcpServer. Před použitím této možnosti v Androidu nezapomeňte nastavitANDROID_SDK_ROOT.
dotnet-dsrouter klient-klient
Spusťte server diagnostiky aplikací .NET, který směruje místní server IPC a vzdálený server TCP. Směrovač se konfiguruje pomocí klienta IPC (připojení serveru IPC diagnostického nástroje) a klienta TCP/IP (připojující se server TCP modulu runtime).
Synopse
dotnet-dsrouter client-client
[-ipcc|--ipc-client <ipcClient>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Možnosti
-ipcc, --ipc-client <ipcClient>Adresa IPC diagnostického nástroje (
--diagnostic-port argumentIPC) diagnostického nástroje Směrovač se připojí k serveru IPC diagnostického nástroje při vytváření nové trasy mezi modulem runtime a diagnostickým nástrojem.-tcpc, --tcp-client <tcpClient>Runtime TCP/IP adresa ve formátu
[host]:[port]. Směrovač se může připojit127.0.0.1, ,[::1]IPv4 adresa, adresa IPv6, adresy názvu hostitele. Spusťte modul runtime pomocíDOTNET_DiagnosticPortsproměnné prostředí k nastavení naslouchacího procesu.-rt, --runtime-timeout <runtimeTimeout>Směrovač se automaticky vypne, pokud se k němu před zadaným časovým limitem (sekundy) nepřipojí žádný modul runtime. Pokud není zadaný, směrovač neaktivuje automatické vypnutí.
-v, --verbose <verbose>Povolí podrobné protokolování (ladění|trasování).
-fp, --forward-port <forwardPort>Povolí přesměrování portů. Hodnoty jsou
AndroidneboiOSproTcpClient, a pouzeAndroidproTcpServer. Před použitím této možnosti v Androidu nezapomeňte nastavitANDROID_SDK_ROOT.
Shromažďování trasování po spuštění pomocí dotnet-trace z aplikace .NET běžící na Androidu
Někdy může být užitečné shromáždit trasování aplikace od jejího spuštění. Následující kroky ilustrují proces, jak to udělat, když cílíte na aplikaci .NET běžící na Androidu. Vzhledem k tomu dotnet-dsrouter , že se používá přesměrování portů, funguje stejný scénář pro aplikace spuštěné v místním emulátoru a na fyzickém zařízení připojeném přes USB. Před použitím této možnosti ANDROID_SDK_ROOT nezapomeňte nastavit dotnet-dsrouter nebo nebudete moct najít adb potřebné k nastavení přesměrování portů.
Spusťte dotnet-dsrouter v režimu serveru:
dotnet-dsrouter server-server -ipcs ~/mylocalport -tcps 127.0.0.1:9000 --forward-port Android &Nastavení
DOTNET_DiagnosticPortsproměnné prostředí pomocíAndroidEnvironment:Vytvořte soubor ve stejném adresáři jako soubor .csproj s použitím názvu, například
app.env, přidejte do souboruDOTNET_DiagnosticPorts=127.0.0.1:9000,suspendproměnné prostředí a doItemGrouppřidejte následující položky:<ItemGroup Condition="'$(AndroidEnableProfiler)'=='true'"> <AndroidEnvironment Include="app.env" /> </ItemGroup>Je také možné nastavit
DOTNET_DiagnosticPortspomocíadb shell setprop:adb shell setprop debug.mono.profile '127.0.0.1:9000,suspend'Sestavte a spusťte aplikaci pomocí sady .NET Android SDK a povolte trasování předáním
/p:AndroidEnableProfiler=truenástroje MSBuild. Vzhledem k tomu, že je aplikace nakonfigurovaná tak, aby se pozastavila při spuštění, připojí se zpět k naslouchacímudotnet-dsrouter127.0.0.1:9000procesu TCP/IP a před obnovením provádění aplikace čeká na připojení diagnostických nástrojů.Spusťte v režimu shromažďování, připojte
dotnet-tracese kdotnet-dsrouterserveru IPC, ~/mylocalport:dotnet-trace collect --diagnostic-port ~/mylocalport,connect
dotnet-trace spustí relaci trasování a obnoví aplikaci, která se teď bude dál spouštět. Stream událostí začne proudit z mobilní aplikace prostřednictvím dotnet-dsrouter souboru dotnet-trace nettrace. Po dokončení trasování stiskněte Enter , abyste se ujistili, že relace trasování je správně zavřená a ujistěte se, že soubor nettrace obsahuje všechna potřebná data, než se aplikace zavře.
Je možné spouštět několik trasovacích relací proti stejné spuštěné aplikaci v průběhu času, nechat dotnet-dsrouter spuštěné a znovu spustit dotnet-trace , když je potřeba nová relace trasování.
dotnet-dsrouter pokud je aplikace nakonfigurovaná tak, aby se připojila pomocí adresy a portu, může zůstat spuštěná na pozadí a znovu ji použít.
dotnet-dsrouter je svázaný s jednou spuštěnou aplikací kdykoli. Pokud potřebujete současně trasovat několik různých aplikací, musí každá aplikace používat vlastní dotnet-dsrouter instanci tak, že nastaví jedinečnou dvojici IPC, TCP dotnet-dsrouter /IP adresy a nakonfiguruje různé instance aplikace, aby se připojila zpět ke své jedinečné dotnet-dsrouter instanci.
Pokud dotnet-dsrouter je spuštěný s cílením na --forward-port Android a adb server, emulátor nebo zařízení se restartuje, je potřeba restartovat všechny dotnet-dsrouter instance a obnovit pravidla předávání portů.
Až budete hotovi, dotnet-dsrouterstisknutím klávesY Q nebo Ctrl + C ukončete aplikaci.
Poznámka:
Při spuštění dotnet-dsrouter ve Windows bude pro svůj kanál IPC používat pojmenované kanály. Nahraďte ~/mylocalport parametrem mylocalport ve výše uvedených příkladech při spuštění ve Windows.
Poznámka:
Příkladem je port TCP/IP 9000. Můžete použít libovolný bezplatný port TCP/IP.
Poznámka:
Unix Domain Socket ~/mylocalport je jen příklad. Lze použít libovolnou bezplatnou cestu k souboru Unix Domain Socket.
Shromažďování trasování pomocí dotnet-trace z aplikace .NET spuštěné na Androidu
Pokud není potřeba shromažďovat trasování během spouštění aplikace, je možné spustit aplikaci v nosuspend režimu, což znamená, že modul runtime při spuštění neblokuje čekání na připojení diagnostických nástrojů před zahájením provádění. Většina výše popsaných scénářů platí i pro tento režim, stačí nahradit suspend proměnnou nosuspendDOTNET_DiagnosticPorts prostředí a spustit aplikaci v nosuspend režimu.