dotnet-dsrouter

Bu makale şunlar için geçerlidir: ✔️ .NET 6.0 SDK ve sonraki sürümleri

Install

NuGet paketinin en son sürüm sürümünü dotnet-dsrouteryüklemek için dotnet tool install komutunu kullanın:

dotnet tool install --global dotnet-dsrouter

Synopsis

dotnet-dsrouter [-?, -h, --help] [--version] <command>

Description

dotnet-dsrouter, dotnet-trace ve dotnet-counters gibi tanılama araçlarını, öykünücü, simülatör veya cihazda çalıştırılmasından bağımsız olarak Android, iOS ve tvOS üzerinde çalışan .NET uygulamalarına bağlar. Tanılama araçları, .NET çalışma zamanına bağlanmak ve iletişim kurmak için yerel işlemler arası iletişimi (IPC) (Adlandırılmış Kanal, Unix Etki Alanı Yuvası) kullanır. Öykünücülerde, simülatörlerde ve cihazlarda korumalı alan ortamlarında çalışan .NET uygulamalarının iletişim kurmak için alternatif yöntemlere ihtiyacı vardır. , dotnet-dsrouter mevcut tanılama araçlarıyla .NET mobil uygulamaları arasına kendisini ekler ve uygulamanın yerel bir gösterimini oluşturur. , dotnet-dsrouter tanılama araçlarının uzak bir .NET çalışma zamanıyla yerel makinede çalışıyormuş gibi iletişim kurmasını sağlar.

Tanılama araçları ile dotnet-dsrouter arasındaki iletişim, yerel bir .NET çalışma zamanına bağlanırken kullanılan IPC (Adlandırılmış Kanal, Unix Etki Alanı Soketi) ile aynıdır. dotnet-dsrouter uzak .NET çalışma zamanıyla iletişiminde TCP/IP kullanır ve farklı platformlar tarafından kullanılan farklı gereksinimleri ve gereksinimleri işlemek için birkaç farklı bağlantı senaryosunu destekler. dotnet-dsrouter ayrıca öykünücüde, simülatörde ve USB üzerinden bağlı fiziksel cihazda çalışırken bağlantı yapılandırmasını basitleştirmek için ek destek uygular.

Note

dotnet-dsrouter geliştirme ve test için tasarlanmıştır ve dotnet-dsrouter'yi geri döngü arabiriminde çalıştırmanız (örneğin, 127.0.0.1, [::1]) kesinlikle önerilir. Bağlantı özellikleri ve bağlantı noktası iletme özellikleri, USB üzerinden bağlı yerel öykünücü dotnet-dsrouter , simülatör veya fiziksel cihaz kullanarak tüm senaryoları işler.

Warning

TCP sunucusu uç noktasının geri döngü arabirimi (localhost127.0.0.1veya [::1]) dışında herhangi bir şeye bağlanması önerilmez. TCP sunucusu uç noktasına yönelik tüm bağlantılar kimliği doğrulanmamış ve şifrelenmemiş olacaktır. dotnet-dsrouter geliştirme kullanımına yöneliktir ve yalnızca geliştirme ve test ortamlarında çalıştırılmalıdır.

Mobil uygulamalarla birlikte ayrıntılı kullanımı dotnet-dsrouter , ilgili .NET SDK'larına göre özetlenmiştir. Bu belge, Android üzerinde çalışan .NET uygulamasında tanılama araçlarının nasıl çalıştırılacağına ilişkin yalnızca birkaç örnek içerir. Yapılandırma ve senaryolar hakkında ayrıntılı bilgi için bkz. Tanılama İzleme.

Options

  • -?|-h|--help

    Komut satırı yardımlarını gösterir.

  • --version

    Yardımcı programın sürümünü dotnet-dsrouter gösterir.

Commands

Command
dotnet-dsrouter client-server
dotnet-dsrouter server-server
dotnet-dsrouter server-client
dotnet-dsrouter client-client

dotnet-dsrouter istemci-sunucu

.NET uygulama tanılama sunucusunu başlatın, yerel IPC sunucusunu yönlendirin ve uzak TCP istemcisine bağlayın. Yönlendirici, bir IPC istemcisi (tanılama aracı IPC sunucusuna bağlanma) ve TCP/IP sunucusu (çalışma zamanı TCP istemcisini kabul etme) kullanılarak yapılandırılır.

Synopsis

dotnet-dsrouter client-server
    [-ipcc|--ipc-client <ipcClient>]
    [-tcps|--tcp-server <tcpServer>]
    [-rt|--runtime-timeout <timeout>]
    [-v|--verbose <level>]
    [-fp|--forward-port <platform>]

Options

  • -ipcc, --ipc-client <ipcClient>

    Tanılama aracı tanılama sunucusu IPC adresini (--diagnostic-port bağımsız değişken) belirtir. Yönlendirici, çalışma zamanı ile tanılama aracı arasında yeni bir yol oluştururken tanılama aracı IPC sunucusuna bağlanır.

  • -tcps, --tcp-server <tcpServer>

    biçimini [host]:[port]kullanarak yönlendirici TCP/IP adresini belirtir. Yönlendirici bir (127.0.0.1, [::1], 0.0.0.0, [::], IPv4 adresi, IPv6 adresi, ana bilgisayar adı) veya tüm (*) arabirimleri bağlayabilir. Ortam değişkenini DOTNET_DiagnosticPorts kullanarak çalışma zamanını başlatır ve başlatma sırasında yönlendirici TCP sunucusunu bağlar.

  • -rt, --runtime-timeout <runtimeTimeout>

    Belirtilen zaman aşımı süresinden (saniye) önce hiçbir çalışma süresi bağlanmazsa yönlendiriciyi otomatik olarak kapatır. Belirtilmezse, yönlendirici otomatik kapatma tetiklemez.

  • -v, --verbose <verbose>

    Ayrıntılı günlük kaydını etkinleştirir (hata ayıklama|izleme).

  • -fp, --forward-port <forwardPort>

    Bağlantı noktası iletmeyi etkinleştirir. Değerler TcpClient için Android veya iOS, ve TcpServer için yalnızca Android şeklindedir. Android için, isteğe bağlı olarak $ANDROID_HOME'yi geçerli bir Android SDK yolu olarak ayarlayın.

dotnet-dsrouter server-server

Bir .NET uygulama tanılama sunucusu, yerel IPC istemcisi ve uzak TCP istemcisi için yönlendirme başlatın. Yönlendirici, bir IPC sunucusu (tanılama araçlarıyla bağlanma) ve TCP/IP sunucusu (çalışma zamanı TCP istemcisini kabul etme) kullanılarak yapılandırılır.

Synopsis

dotnet-dsrouter server-server
    [-ipcs|--ipc-server <ipcServer>]
    [-tcps|--tcp-server <tcpServer>]
    [-rt|--runtime-timeout <timeout>]
    [-v|--verbose <level>]
    [-fp|--forward-port <platform>]

Options

  • -ipcs, --ipc-server <ipcServer>

    Yönlendirilmesi gereken tanılama sunucusunun IPC adresi. Yönlendirici, tanılama araçlarından IPC bağlantılarını kabul ederek çalışma zamanı ortamı ile tanılama aracı arasında yeni bir yol oluşturur. Belirtilmezse, yönlendirici varsayılan IPC tanılama sunucusu yolunu kullanır.

  • -tcps, --tcp-server <tcpServer>

    Yönlendirici TCP/IP adresi biçimindedir [host]:[port]. Yönlendirici bir (127.0.0.1, [::1], 0.0.0.0, [::], IPv4 adresi, IPv6 adresi, ana bilgisayar adı) veya tüm (*) arayüzleri bağlayabilir. Başlatma sırasında yönlendirici TCP sunucusunu bağlayarak ortam değişkeni kullanarak DOTNET_DiagnosticPorts çalışma zamanını başlatın.

  • -rt, --runtime-timeout <runtimeTimeout>

    Belirtilen zaman aşımı süresinden (saniye) önce hiçbir çalışma süresi bağlanmazsa yönlendiriciyi otomatik olarak kapatır. Belirtilmezse, yönlendirici otomatik kapatma tetiklemez.

  • -v, --verbose <verbose>

    Ayrıntılı günlük kaydını etkinleştirir (hata ayıklama|izleme).

  • -fp, --forward-port <forwardPort>

    Bağlantı noktası iletmeyi etkinleştirir. Değerler, Android veya iOS şeklindedir TcpClient için ve yalnızca Android şeklindedir TcpServer için. Android için, isteğe bağlı olarak $ANDROID_HOME'yi geçerli bir Android SDK yolu olarak ayarlayın.

dotnet-dsrouter sunucu-istemci

Bir .NET uygulama tanılama sunucusunu, yerel IPC istemcisini ve uzak TCP sunucusunu yönlendirerek başlatın. Yönlendirici, bir IPC sunucusu (tanılama araçlarıyla bağlanma) ve TCP/IP istemcisi (çalışma zamanı TCP sunucusunu bağlama) kullanılarak yapılandırılır.

Synopsis

dotnet-dsrouter server-client
    [-ipcs|--ipc-server <ipcServer>]
    [-tcpc|--tcp-client <tcpClient>]
    [-rt|--runtime-timeout <timeout>]
    [-v|--verbose <level>]
    [-fp|--forward-port <platform>]

Options

  • -ipcs, --ipc-server <ipcServer>

    Yönlendirilmesi gereken tanılama sunucusunun IPC adresi. Yönlendirici, çalışma zamanı ile tanılama aracı arasında yeni bir yol oluşturan tanılama araçlarından IPC bağlantılarını kabul eder. Belirtilmezse, yönlendirici varsayılan IPC tanılama sunucusu yolunu kullanır.

  • -tcpc, --tcp-client <tcpClient>

    biçimindeki [host]:[port]çalışma zamanı TCP/IP adresi. Yönlendirici 127.0.0.1, [::1], IPv4 adresi, IPv6 adresi, ana bilgisayar adlarını bağlayabilir. Dinleyiciyi ayarlamak için ortam değişkenini kullanarak DOTNET_DiagnosticPorts çalışma zamanını başlatın.

  • -rt, --runtime-timeout <runtimeTimeout>

    Belirtilen zaman aşımından (saniye) önce hiçbir çalışma zamanı bağlanmazsa yönlendiriciyi otomatik olarak kapatır. Belirtilmezse, yönlendirici otomatik kapatma tetiklemez.

  • -v, --verbose <verbose>

    Ayrıntılı günlük kaydını etkinleştirir (hata ayıklama|iz sürme).

  • -fp, --forward-port <forwardPort>

    Bağlantı iletimini etkinleştirir. Değerler veya Android için iOSve yalnızca TcpClient için AndroidşeklindedirTcpServer. Android için, isteğe bağlı olarak $ANDROID_HOME'yi geçerli bir Android SDK yolu olarak ayarlayın.

dotnet-dsrouter client-client

Bir .NET uygulaması için tanılama sunucusunu başlatın; bu sunucu yerel IPC sunucusunu ve uzak TCP sunucusunu yönlendirir. Yönlendirici, bir IPC istemcisi (tanılama aracı IPC sunucusuna bağlanma) ve TCP/IP istemcisi (çalışma zamanı TCP sunucusunu bağlama) kullanılarak yapılandırılır.

Synopsis

dotnet-dsrouter client-client
    [-ipcc|--ipc-client <ipcClient>]
    [-tcpc|--tcp-client <tcpClient>]
    [-rt|--runtime-timeout <timeout>]
    [-v|--verbose <level>]
    [-fp|--forward-port <platform>]

Options

  • -ipcc, --ipc-client <ipcClient>

    Tanılama aracı tanılama sunucusu IPC adresi (--diagnostic-port argument). Yönlendirici, çalışma zamanı ile tanılama aracı arasında yeni bir yol oluştururken tanılama aracı IPC sunucusuna bağlanır.

  • -tcpc, --tcp-client <tcpClient>

    biçimindeki [host]:[port]çalışma zamanı TCP/IP adresi. Yönlendirici 127.0.0.1, [::1], IPv4 adresi, IPv6 adresi, ana bilgisayar adreslerini bağlayabilir. Dinleyiciyi ayarlamak için ortam değişkenini kullanarak DOTNET_DiagnosticPorts çalışma zamanını başlatın.

  • -rt, --runtime-timeout <runtimeTimeout>

    Belirtilen zaman aşımı süresinden (saniye) önce hiçbir çalışma süresi bağlanmazsa yönlendiriciyi otomatik olarak kapatır. Belirtilmezse, yönlendirici otomatik kapatma tetiklemez.

  • -v, --verbose <verbose>

    Ayrıntılı günlük kaydını etkinleştirir (hata ayıklama|izleme).

  • -fp, --forward-port <forwardPort>

    Bağlantı noktası iletmeyi etkinleştirir. Değerler TcpClient için Android veya iOS, ve TcpServer için yalnızca Android şeklindedir. Android için, isteğe bağlı olarak $ANDROID_HOME'yi geçerli bir Android SDK yolu olarak ayarlayın.

Android'de çalışan bir .NET uygulamasından dotnet-trace kullanarak başlangıç izlemesi toplama

Bazen uygulamanın başlangıcından bir izleme toplamak yararlı olabilir. Aşağıdaki adımlarda, Android'de çalışan bir .NET uygulamasını hedefleme işlemi gösterilmektedir. dotnet-dsrouter Bağlantı noktası iletme kullanılarak çalıştırıldığından, aynı senaryo yerel öykünücüde ve USB üzerinden bağlı fiziksel bir cihazda çalışan uygulamalarda da çalışır. dotnet-dsrouter Android SDK'sını otomatik olarak bulmaya çalışır ve adb bağlantı noktası iletmeyi ayarlamak için gereklidir. $ANDROID_HOME ayarlayarak isteğe bağlı olarak bir Android SDK yolu belirleyin.

  • sunucu-sunucu modunda dotnet-dsrouter'ı başlatın:

    dotnet-dsrouter server-server -ipcs ~/mylocalport -tcps 127.0.0.1:9000 --forward-port Android &
    
  • kullanarak DOTNET_DiagnosticPortsortam değişkenini ayarlamaAndroidEnvironment:

    ".csproj dosyası ile aynı dizinde, gibi bir ad kullanarak bir dosya oluşturun, bu dosyaya ortam değişkenleri ekleyin ve aşağıdakileri ItemGroup .csproj dosyasına ekleyin:"

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

    DOTNET_DiagnosticPorts kullanarak ayarlamak da adb shell setprop mümkündür.

    adb shell setprop debug.mono.profile '127.0.0.1:9000,suspend'
    
  • .NET Android SDK'sını kullanarak uygulamayı derleyip başlatın ve MSBuild'e geçirerek /p:AndroidEnableProfiler=true izlemeyi etkinleştirin. Uygulama başlangıçta askıya alınacak şekilde yapılandırıldığından dotnet-dsrouter , üzerinde 127.0.0.1:9000 çalışan TCP/IP dinleyicisine geri bağlanır ve uygulama yürütmeyi devam ettirmeden önce tanılama araçlarının bağlanmasını bekler.

  • Toplama modunda başlayın dotnet-trace , IPC sunucusuna dotnet-dsrouter bağlanın, ~/mylocalport:

      dotnet-trace collect --diagnostic-port ~/mylocalport,connect
    

dotnet-trace bir izleme oturumu başlatacak ve yürütülmekte olan uygulamayı devam ettirecek. Mobil uygulamadan dotnet-dsrouter üzerinden dotnet-trace nettrace dosyasına bir olay akışı akmaya başlayacaktır. İzleme bittiğinde, uygulama kapatılmadan önce nettrace dosyasının gerekli tüm verileri içerdiğinden emin olmak üzere izleme oturumlarının düzgün bir şekilde kapatıldığından emin olmak için Enter tuşuna basın.

Aynı çalışan uygulamada zaman içinde birkaç izleme oturumu çalıştırabilir, yeni bir izleme oturumu gerektiğinde çalışır durumda bırakıp dotnet-dsrouter yeniden çalıştırabilirsiniz dotnet-trace .

dotnet-dsrouter arka planda çalışır durumda bırakılabilir ve bir uygulama adresini ve bağlantı noktasını kullanarak bağlanacak şekilde yapılandırılmışsa yeniden kullanılabilir.

dotnet-dsrouter herhangi bir zamanda çalışan bir uygulamaya bağlıdır. Aynı anda birkaç farklı uygulamanın izlenmesi gerekiyorsa, her uygulamanın içinde benzersiz bir IPC, TCP/IP adresi çifti dotnet-dsrouter ayarlayarak ve farklı uygulama örneklerini benzersiz dotnet-dsrouter örneğine geri bağlanacak şekilde yapılandırarak kendi dotnet-dsrouter örneğini kullanması gerekir.

Android ve adb sunucuyu hedeflemek için dotnet-dsrouter çalıştırıldığında, eğer --forward-port öykünücü veya cihaz yeniden başlatılırsa, bağlantı noktası iletme kurallarını geri yüklemek için tüm dotnet-dsrouter örneklerinin de yeniden başlatılması gerekir.

dotnet-dsrouter ile işiniz bittiğinde, uygulamadan çıkmak için Q veya Ctrl + C tuşlarına basın.

Note

Windows üzerinde çalışırken dotnet-dsrouter IPC kanalı için Named Pipes kullanır. Windows üzerinde çalışırken yukarıdaki örneklerde ~/mylocalport değerini mylocalport ile değiştirin.

Note

TCP/IP bağlantı noktası 9000 yalnızca bir örnektir. Herhangi bir ücretsiz TCP/IP bağlantı noktası kullanılabilir.

Note

Unix Domain Socket "~/mylocalport" yalnızca bir örnektir. Herhangi bir boş Unix Etki Alanı Soketi dosya yolu kullanılabilir.

Android üzerinde çalışan bir .NET uygulamasından dotnet-trace kullanarak izleme toplama

Uygulama başlatma sırasında bir iz toplamaya gerek yoksa, uygulamayı nosuspend modunda başlatmak mümkündür. Bu da çalışma zamanının başlatma sırasında tanılama araçlarının yürütmeye devam etmeden önce bağlanmasını beklemeden çalışmaya devam etmesini sağlar. Yukarıda açıklanan senaryoların çoğu bu mod için de geçerlidir, uygulamayı nosuspend modunda başlatmak için suspend yerine nosuspend ile DOTNET_DiagnosticPorts ortam değişkeninde değiştirin.

Ayrıca bakınız