Aracılığıyla paylaş


dotnet-dsrouter

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

Yükleme

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

Özet

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

Açıklama

ve dotnet-dsrouter gibi dotnet-tracedotnet-counters tanılama araçlarını öykünücü, simülatör veya cihazın kendisinde çalıştırılmaları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üler, simülatörler ve cihazlarda korumalı ortamlarda ç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ı dotnet-dsrouter ile arasındaki iletişim, yerel bir .NET çalışma zamanına bağlanırken kullanılan IPC'yi (Adlandırılmış Kanal, Unix Etki Alanı Yuvası) kullanı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.

Not

dotnet-dsroutergeliştirme ve test amaçlıdır ve geri döngü arabirimini (örneğin , dotnet-dsrouter127.0.0.1) çalıştırmanız [::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.

Uyarı

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.

Seçenekler

  • -?|-h|--help

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

  • --version

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

Komutlar

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

dotnet-dsrouter client-server

Bir .NET uygulama tanılama sunucusu yönlendirme yerel IPC sunucusu ve uzak TCP istemcisi başlatı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.

Özet

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

Seçenekler

  • -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ı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|izleme).

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

    Bağlantı noktası iletmeyi etkinleştirir. Değerler veya Android için iOSve yalnızca TcpClient için AndroidşeklindedirTcpServer. Android'de bu seçeneği kullanmadan önce ayarladığınızdan ANDROID_SDK_ROOT emin olun.

dotnet-dsrouter server-server

Bir .NET uygulama tanılama sunucusu yönlendirme yerel IPC istemcisi ve uzak TCP istemcisi 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.

Özet

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

Seçenekler

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

    Yönlendirecek tanılama sunucusu 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.

  • -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 (*) arabirimleri 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ı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|izleme).

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

    Bağlantı noktası iletmeyi etkinleştirir. Değerler veya Android için iOSve yalnızca TcpClient için AndroidşeklindedirTcpServer. Android'de bu seçeneği kullanmadan önce ayarladığınızdan ANDROID_SDK_ROOT emin olun.

dotnet-dsrouter server-client

Bir .NET uygulama tanılama sunucusu yönlendirme yerel IPC istemcisi ve uzak TCP sunucusu 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.

Özet

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

Seçenekler

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

    Yönlendirecek tanılama sunucusu 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.1IPv4 adresi, IPv6 adresi, ana bilgisayar adı adresleri bağlayabilir[::1]. 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|izleme).

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

    Bağlantı noktası iletmeyi etkinleştirir. Değerler veya Android için iOSve yalnızca TcpClient için AndroidşeklindedirTcpServer. Android'de bu seçeneği kullanmadan önce ayarladığınızdan ANDROID_SDK_ROOT emin olun.

dotnet-dsrouter client-client

Bir .NET uygulama tanılama sunucusu yönlendirme yerel IPC sunucusu ve uzak TCP sunucusu başlatın. 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.

Özet

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

Seçenekler

  • -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.1IPv4 adresi, IPv6 adresi, ana bilgisayar adı adresleri bağlayabilir[::1]. 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|izleme).

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

    Bağlantı noktası iletmeyi etkinleştirir. Değerler veya Android için iOSve yalnızca TcpClient için AndroidşeklindedirTcpServer. Android'de bu seçeneği kullanmadan önce ayarladığınızdan ANDROID_SDK_ROOT emin olun.

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. Bu seçeneği kullanmadan önce ayarladığınızdan ANDROID_SDK_ROOT emin olun; aksi dotnet-dsrouter durumda bağlantı noktası iletmeyi ayarlamak için gerekenleri bulamazsınız adb .

  • 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:

    gibi bir ad kullanarak .csprojapp.envbir dosya oluşturun, DOTNET_DiagnosticPorts=127.0.0.1:9000,suspend dosyasına ortam değişkenleri ekleyin ve .csprojItemGroupaşağıdakileri ekleyin:

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

    kullanarak ayarlamak DOTNET_DiagnosticPortsadb shell setpropda 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 artık yürütülmeye devam edecek bir izleme oturumu başlatır ve uygulamayı sürdürür. Bir olay akışı mobil uygulamadan dotnet-dsrouter nettrace dosyasına akmaya dotnet-trace başlar. İ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 dotnet-dsrouter sunucuyu hedefleme, --forward-port öykünücü veya cihaz yeniden başlatılırsaadb, bağlantı noktası iletme kurallarını geri yüklemek için tüm dotnet-dsrouter örneklerin de yeniden başlatılması gerekir.

uygulamasını kullanmayı dotnet-dsrouterbitirdiğinizde, uygulamadan çıkmak için Q veya + basın.

Not

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

Not

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

Not

Unix Etki Alanı Yuvası ~/mylocalport yalnızca bir örnektir. Herhangi bir ücretsiz Unix Etki Alanı Yuvası dosya yolu kullanılabilir.

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

Uygulama başlatma sırasında bir izleme toplamaya gerek yoksa, uygulamayı modda nosuspend başlatmak mümkündür; yani çalışma zamanı başlatma sırasında tanılama araçlarının yürütmeye devam etmeden önce bağlanmasını beklerken engellenmez. Yukarıda açıklanan senaryoların çoğu bu mod için de geçerlidir, uygulamayı modda başlatmak için yerine in environment değişkenini kullanın suspendnosuspendDOTNET_DiagnosticPorts.nosuspend

Ayrıca bkz.