Megosztás a következőn keresztül:


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 (localhost127.0.0.1vagy [::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,, , 0.0.0.0[::1], [::]IPv4-cím, IPv6-cím, állomásnév) vagy az összes (*) adaptert kötheti össze. Elindítja a futtatókörnyezetet a DOTNET_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 azok TcpClient, és csak Android a következőhöz tartoznak TcpServer: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítást ANDROID_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,, , 0.0.0.0[::1], [::]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ával DOTNET_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 azok TcpClient, és csak Android a következőhöz tartoznak TcpServer: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítást ANDROID_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ó csatlakozhat 127.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óval DOTNET_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 azok TcpClient, és csak Android a következőhöz tartoznak TcpServer: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítást ANDROID_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ó csatlakozhat 127.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óval DOTNET_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 azok TcpClient, és csak Android a következőhöz tartoznak TcpServer: . A beállítás androidos használata előtt mindenképpen állítsa be a beállítást ANDROID_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 adb be van állítvaANDROID_SDK_ROOT, vagy dotnet-dsrouter 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ővel AndroidEnvironment:

    Hozzon létre egy fájlt ugyanabban a könyvtárban, mint a .csproj egy hasonló app.envné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őt ItemGroup a .csproj fájlba:

    <ItemGroup Condition="'$(AndroidEnableProfiler)'=='true'">
      <AndroidEnvironment Include="app.env" />
    </ItemGroup>
    

    A következővel adb shell setpropis beállíthatóDOTNET_DiagnosticPorts:

    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 a dotnet-dsrouter tcp/IP-figyelőhöz 127.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óhoz dotnet-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 adb kiszolgálói célokkal --forward-port 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.

Lásd még