dotnet-dsrouter
Ez a cikk a következőre vonatkozik: ✔️ .NET 6.0 SDK és újabb verziók
Telepítés
A NuGet-csomag legújabb kiadási verziójának dotnet-dsrouter
telepítéséhez használja a dotnet eszköz telepítési parancsát:
dotnet tool install --global dotnet-dsrouter
Szinopszis
dotnet-dsrouter [-?, -h, --help] [--version] <command>
Leírás
A dotnet-dsrouter
diagnosztikai eszközökhöz hasonló dotnet-trace
és az Androidon, iOS-en és dotnet-counters
tvOS-en futó .NET-alkalmazásokhoz csatlakozik, függetlenül attól, hogy emulátorként, szimulátorként vagy maga az eszközön futnak. A diagnosztikai eszközök helyi folyamatközi kommunikációt (IPC) (named Pipe, Unix Domain Socket) használnak a .NET-futtatókörnyezethez való csatlakozáshoz és kommunikációhoz. Az emulátorokon, szimulátorokon és eszközökön futó tesztkörnyezetekben futó .NET-alkalmazásoknak alternatív kommunikációs módokra van szükségük. Az dotnet-dsrouter
injektálja magát a meglévő diagnosztikai eszközök és a .NET mobilalkalmazások között, és létrehozza az alkalmazás helyi ábrázolását. Ez dotnet-dsrouter
lehetővé teszi, hogy a diagnosztikai eszközök úgy kommunikáljanak egy távoli .NET-futtatókörnyezettel, mintha a helyi gépen futna.
A diagnosztikai eszközök közötti kommunikáció és dotnet-dsrouter
ugyanazt az IPC-t (Named Pipe, Unix Domain Socket) használja, mint a helyi .NET-futtatókörnyezethez való csatlakozáskor.
dotnet-dsrouter
A TCP/IP protokollt használja a távoli .NET-futtatókörnyezettel való kommunikációban, és számos különböző kapcsolati forgatókönyvet támogat a különböző platformok által használt különböző igények és követelmények kezeléséhez.
dotnet-dsrouter
Emellett további támogatást is megvalósít, hogy egyszerűsítse a kapcsolat konfigurálásának menetét emulátorban, szimulátorban és USB-n keresztül csatlakoztatott fizikai eszközön.
Feljegyzés
dotnet-dsrouter
fejlesztésre és tesztelésre szolgál, és erősen ajánlott a visszacsatolási felület futtatása dotnet-dsrouter
(például 127.0.0.1
, [::1]
). A kapcsolati funkciók és a porttovábbítási dotnet-dsrouter
képességek minden forgatókönyvet helyi emulátor, szimulátor vagy USB-n keresztül csatlakoztatott fizikai eszköz használatával kezelnek.
Figyelmeztetés
A TCP-kiszolgálóvégpont kötése a visszacsatolási felület (localhost
127.0.0.1
vagy [::1]
) kivételével nem ajánlott. A TCP-kiszolgáló végpontja felé irányuló kapcsolatok hitelesítés nélküliek és titkosítatlanok lesznek.
dotnet-dsrouter
fejlesztési célokra szolgál, és csak fejlesztési és tesztelési környezetben futtatható.
A mobilalkalmazások részletes használatát dotnet-dsrouter
a megfelelő .NET SDK-k ismertetik. Ez a dokumentum csak néhány példát tartalmaz arra, hogyan futtathat diagnosztikai eszközöket androidos .NET-alkalmazáson. A konfigurációval és a forgatókönyvekkel kapcsolatos részletes információkért lásd: Diagnosztikai nyomkövetés.
Beállítások
-?|-h|--help
Parancssori súgót jelenít meg.
--version
Megjeleníti a segédprogram verzióját
dotnet-dsrouter
.
Parancsok
Parancs |
---|
dotnet-dsrouter ügyfélkiszolgáló |
dotnet-dsrouter kiszolgáló-kiszolgáló |
dotnet-dsrouter server-client |
dotnet-dsrouter client-client |
dotnet-dsrouter ügyfélkiszolgáló
Indítsa el a .NET-alkalmazásdiagnosztikai kiszolgálót a helyi IPC-kiszolgáló és a távoli TCP-ügyfél útválasztásához. Az útválasztó egy IPC-ügyfél (a diagnosztikai eszköz IPC-kiszolgálójának csatlakoztatása) és egy TCP/IP-kiszolgáló (futtatókörnyezeti TCP-ügyfél elfogadása) használatával van konfigurálva.
Szinopszis
dotnet-dsrouter client-server
[-ipcc|--ipc-client <ipcClient>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Beállítások
-ipcc, --ipc-client <ipcClient>
Megadja a diagnosztikai eszköz diagnosztikai kiszolgálójának IPC-címét (
--diagnostic-port
argumentum). Az útválasztó a diagnosztikai eszköz IPC-kiszolgálójához csatlakozik, amikor új útvonalat hoz létre a futtatókörnyezet és a diagnosztikai eszköz között.-tcps, --tcp-server <tcpServer>
Az útválasztó TCP/IP-címét adja meg formátum
[host]:[port]
használatával. Az útválasztó egy (127.0.0.1
,, ,[::1]
0.0.0.0
,[::]
IPv4-cím, IPv6-cím, állomásnév) vagy az összes (*) adaptert kötheti össze. Elindítja a futtatókörnyezetet aDOTNET_DiagnosticPorts
környezeti változóval, és az indítás során csatlakoztatja az útválasztó TCP-kiszolgálót.-rt, --runtime-timeout <runtimeTimeout>
Automatikusan leállítja az útválasztót, ha egy futtatókörnyezet sem csatlakozik hozzá a megadott időtúllépés (másodperc) előtt. Ha nincs megadva, az útválasztó nem indít el automatikus leállítást.
-v, --verbose <verbose>
Engedélyezi a részletes naplózást (hibakeresés|nyomkövetés).
-fp, --forward-port <forwardPort>
Engedélyezi a porttovábbítást. Az értékek vagy
Android
iOS
azokTcpClient
, és csakAndroid
a következőhöz tartoznakTcpServer
: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítástANDROID_SDK_ROOT
.
dotnet-dsrouter kiszolgáló-kiszolgáló
Indítsa el a .NET-alkalmazásdiagnosztikai kiszolgálót a helyi IPC-ügyfél és a távoli TCP-ügyfél útválasztásához. Az útválasztó egy IPC-kiszolgálóval (diagnosztikai eszközökkel csatlakozva) és egy TCP/IP-kiszolgálóval (futtatókörnyezeti TCP-ügyfél fogadása) van konfigurálva.
Szinopszis
dotnet-dsrouter server-server
[-ipcs|--ipc-server <ipcServer>]
[-tcps|--tcp-server <tcpServer>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Beállítások
-ipcs, --ipc-server <ipcServer>
A diagnosztikai kiszolgáló IPC-címe az útvonalhoz. Az útválasztó fogadja a diagnosztikai eszközök IPC-kapcsolatait, és új útvonalat hoz létre a futtatókörnyezet és a diagnosztikai eszköz között. Ha nincs megadva, az útválasztó az alapértelmezett IPC diagnosztikai kiszolgáló elérési útját használja.
-tcps, --tcp-server <tcpServer>
Az útválasztó TCP/IP-címe a formátumban
[host]:[port]
. Az útválasztó egy (127.0.0.1
,, ,[::1]
0.0.0.0
,[::]
IPv4-cím, IPv6-cím, állomásnév) vagy az összes (*) adaptert kötheti össze. Indítsa el a futtatókörnyezetet környezeti változó használatávalDOTNET_DiagnosticPorts
, és csatlakoztassa az útválasztó TCP-kiszolgálót az indítás során.-rt, --runtime-timeout <runtimeTimeout>
Automatikusan leállítja az útválasztót, ha egy futtatókörnyezet sem csatlakozik hozzá a megadott időtúllépés (másodperc) előtt. Ha nincs megadva, az útválasztó nem indít el automatikus leállítást.
-v, --verbose <verbose>
Engedélyezi a részletes naplózást (hibakeresés|nyomkövetés).
-fp, --forward-port <forwardPort>
Engedélyezi a porttovábbítást. Az értékek vagy
Android
iOS
azokTcpClient
, és csakAndroid
a következőhöz tartoznakTcpServer
: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítástANDROID_SDK_ROOT
.
dotnet-dsrouter server-client
Indítsa el a .NET-alkalmazásdiagnosztikai kiszolgálót a helyi IPC-ügyfél és a távoli TCP-kiszolgáló útválasztásához. Az útválasztó egy IPC-kiszolgálóval (diagnosztikai eszközökkel csatlakozva) és egy TCP/IP-ügyféllel (futtatókörnyezeti TCP-kiszolgáló csatlakoztatása) van konfigurálva.
Szinopszis
dotnet-dsrouter server-client
[-ipcs|--ipc-server <ipcServer>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Beállítások
-ipcs, --ipc-server <ipcServer>
A diagnosztikai kiszolgáló IPC-címe az útvonalhoz. Az útválasztó elfogadja a diagnosztikai eszközök IPC-kapcsolatait, és új útvonalat hoz létre a futtatókörnyezet és a diagnosztikai eszköz között. Ha nincs megadva, az útválasztó az alapértelmezett IPC diagnosztikai kiszolgáló elérési útját használja.
-tcpc, --tcp-client <tcpClient>
A futtatókörnyezeti TCP/IP-cím formátuma
[host]:[port]
. Az útválasztó csatlakozhat127.0.0.1
,[::1]
IPv4-cím, IPv6-cím, állomásnévcím. Indítsa el a futtatókörnyezetet környezeti változóvalDOTNET_DiagnosticPorts
a figyelő beállításához.-rt, --runtime-timeout <runtimeTimeout>
Automatikusan leállítja az útválasztót, ha egy futtatókörnyezet sem csatlakozik hozzá a megadott időtúllépés (másodperc) előtt. Ha nincs megadva, az útválasztó nem indít el automatikus leállítást.
-v, --verbose <verbose>
Engedélyezi a részletes naplózást (hibakeresés|nyomkövetés).
-fp, --forward-port <forwardPort>
Engedélyezi a porttovábbítást. Az értékek vagy
Android
iOS
azokTcpClient
, és csakAndroid
a következőhöz tartoznakTcpServer
: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítástANDROID_SDK_ROOT
.
dotnet-dsrouter client-client
Indítsa el a .NET-alkalmazásdiagnosztikai kiszolgálót a helyi IPC-kiszolgáló és a távoli TCP-kiszolgáló útválasztásához. Az útválasztó egy IPC-ügyfél (a diagnosztikai eszköz IPC-kiszolgálójának csatlakoztatása) és egy TCP/IP-ügyfél (futtatókörnyezeti TCP-kiszolgáló csatlakoztatása) használatával van konfigurálva.
Szinopszis
dotnet-dsrouter client-client
[-ipcc|--ipc-client <ipcClient>]
[-tcpc|--tcp-client <tcpClient>]
[-rt|--runtime-timeout <timeout>]
[-v|--verbose <level>]
[-fp|--forward-port <platform>]
Beállítások
-ipcc, --ipc-client <ipcClient>
A diagnosztikai eszköz diagnosztikai kiszolgálójának IPC-címe (
--diagnostic-port argument
). Az útválasztó a diagnosztikai eszköz IPC-kiszolgálójához csatlakozik, amikor új útvonalat hoz létre a futtatókörnyezet és a diagnosztikai eszköz között.-tcpc, --tcp-client <tcpClient>
A futtatókörnyezeti TCP/IP-cím formátuma
[host]:[port]
. Az útválasztó csatlakozhat127.0.0.1
,[::1]
IPv4-cím, IPv6-cím, állomásnévcím. Indítsa el a futtatókörnyezetet környezeti változóvalDOTNET_DiagnosticPorts
a figyelő beállításához.-rt, --runtime-timeout <runtimeTimeout>
Automatikusan leállítja az útválasztót, ha egy futtatókörnyezet sem csatlakozik hozzá a megadott időtúllépés (másodperc) előtt. Ha nincs megadva, az útválasztó nem indít el automatikus leállítást.
-v, --verbose <verbose>
Engedélyezi a részletes naplózást (hibakeresés|nyomkövetés).
-fp, --forward-port <forwardPort>
Engedélyezi a porttovábbítást. Az értékek vagy
Android
iOS
azokTcpClient
, és csakAndroid
a következőhöz tartoznakTcpServer
: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítástANDROID_SDK_ROOT
.
Indítási nyomkövetés összegyűjtése dotnet-trace használatával androidos .NET-alkalmazásból
Néha hasznos lehet egy alkalmazás nyomkövetését összegyűjteni az indításból. Az alábbi lépések azt szemléltetik, hogy ez egy Androidon futó .NET-alkalmazásra irányul. Mivel dotnet-dsrouter
a futtatás porttovábbítással történik, ugyanez a forgatókönyv működik a helyi emulátoron és egy USB-n keresztül csatlakoztatott fizikai eszközön futó alkalmazásokon is. A beállítás használata előtt győződjön meg arról, hogy ANDROID_SDK_ROOT
be van állítvadotnet-dsrouter
, vagy adb
nem találja a porttovábbítás beállításához szükségest.
Indítsa el a dotnet-dsroutert kiszolgáló-kiszolgáló módban:
dotnet-dsrouter server-server -ipcs ~/mylocalport -tcps 127.0.0.1:9000 --forward-port Android &
Környezeti változó beállítása
DOTNET_DiagnosticPorts
a következővelAndroidEnvironment
:Hozzon létre egy fájlt ugyanabban a könyvtárban, mint a .csproj egy hasonló
app.env
néven, adjon hozzá környezeti változókat a fájlhoz,DOTNET_DiagnosticPorts=127.0.0.1:9000,suspend
és adja hozzá a következőtItemGroup
a .csproj fájlba:<ItemGroup Condition="'$(AndroidEnableProfiler)'=='true'"> <AndroidEnvironment Include="app.env" /> </ItemGroup>
A következővel
DOTNET_DiagnosticPorts
is beállíthatóadb shell setprop
:adb shell setprop debug.mono.profile '127.0.0.1:9000,suspend'
Hozza létre és indítsa el az alkalmazást a .NET Android SDK használatával, és engedélyezze a nyomkövetést az MSBuildnek való
/p:AndroidEnableProfiler=true
átadással. Mivel az alkalmazás indításkor felfüggesztésre lett konfigurálva, vissza fog kapcsolódni adotnet-dsrouter
tcp/IP-figyelőhöz127.0.0.1:9000
, amelyen fut, és megvárja, amíg a diagnosztikai eszközök csatlakozni fognak az alkalmazás végrehajtásának folytatása előtt.Kezdés
dotnet-trace
gyűjtési módban, csatlakozás IPC-kiszolgálóhozdotnet-dsrouter
, ~/mylocalport:dotnet-trace collect --diagnostic-port ~/mylocalport,connect
dotnet-trace
elindít egy nyomkövetési munkamenetet, és folytatja az alkalmazást, amely most folytatódik. Az események adatfolyama elindul a mobilalkalmazásból dotnet-dsrouter
a nettrace-fájlba dotnet-trace
. Ha végzett a nyomkövetéssel, az Enter billentyűt lenyomva győződjön meg arról, hogy a nyomkövetési munkamenet megfelelően lezárult, és győződjön meg arról, hogy a nettrace-fájl tartalmazza az összes szükséges adatot az alkalmazás bezárása előtt.
Több nyomkövetési munkamenetet is futtathat egy adott futó alkalmazáson keresztül, ha új nyomkövetési munkamenetre van szükség, futtassa dotnet-dsrouter
és futtassa dotnet-trace
újra.
dotnet-dsrouter
a háttérben futtatható és újra felhasználható, ha egy alkalmazás a címével és portjával való csatlakozásra van konfigurálva.
dotnet-dsrouter
egy futó alkalmazáshoz van kötve. Ha egyszerre több különböző alkalmazást kell nyomon követnie, minden alkalmazásnak saját dotnet-dsrouter
példányt kell használnia egy egyedi IPC- és TCP-/IP-címpár dotnet-dsrouter
beállításával, valamint különböző alkalmazáspéldányok konfigurálásával, hogy vissza tudjanak kapcsolódni az egyedi dotnet-dsrouter
példányhoz.
Ha dotnet-dsrouter
androidos és --forward-port
kiszolgálói célokkal adb
fut, az emulátor vagy az eszköz újraindul, az összes dotnet-dsrouter
példányt újra kell indítani a porttovábbítási szabályok visszaállításához.
Ha végzett a használattaldotnet-dsrouter
, nyomja le a Q vagy a Ctrl C billentyűkombinációt + az alkalmazásból való kilépéshez.
Feljegyzés
Windows rendszeren futtatva dotnet-dsrouter
nevesített csöveket fog használni az IPC-csatornájához. Cserélje le a ~/mylocalportot a fenti példákban mylocalportra windowsos futtatáskor.
Feljegyzés
A 9000-s TCP/IP-port csak egy példa. Bármilyen ingyenes TCP/IP-port használható.
Feljegyzés
A Unix Domain Socket ~/mylocalport csak egy példa. Bármely ingyenes Unix Domain Socket-fájl elérési útja használható.
Nyomkövetés gyűjtése dotnet-trace használatával androidos .NET-alkalmazásból
Ha az alkalmazás indításakor nem szükséges nyomkövetést gyűjtenie, lehetséges az alkalmazás nosuspend
indítása módban, ami azt jelenti, hogy a futtatókörnyezet nem blokkolja indításkor a diagnosztikai eszközök csatlakozására várva a végrehajtás folytatása előtt. A fent leírt forgatókönyvek többsége erre a módra is vonatkozik, csak cserélje le suspend
a környezeti változóra nosuspend
DOTNET_DiagnosticPorts
az alkalmazás nosuspend
módban való elindításához.