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-dsrouter
yü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-trace
dotnet-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-dsrouter
geliştirme ve test amaçlıdır ve geri döngü arabirimini (örneğin , dotnet-dsrouter
127.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 (localhost
127.0.0.1
veya [::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şkeniniDOTNET_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çiniOS
ve yalnızcaTcpClient
içinAndroid
şeklindedirTcpServer
. Android'de bu seçeneği kullanmadan önce ayarladığınızdanANDROID_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 kullanarakDOTNET_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çiniOS
ve yalnızcaTcpClient
içinAndroid
şeklindedirTcpServer
. Android'de bu seçeneği kullanmadan önce ayarladığınızdanANDROID_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.1
IPv4 adresi, IPv6 adresi, ana bilgisayar adı adresleri bağlayabilir[::1]
. Dinleyiciyi ayarlamak için ortam değişkenini kullanarakDOTNET_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çiniOS
ve yalnızcaTcpClient
içinAndroid
şeklindedirTcpServer
. Android'de bu seçeneği kullanmadan önce ayarladığınızdanANDROID_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.1
IPv4 adresi, IPv6 adresi, ana bilgisayar adı adresleri bağlayabilir[::1]
. Dinleyiciyi ayarlamak için ortam değişkenini kullanarakDOTNET_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çiniOS
ve yalnızcaTcpClient
içinAndroid
şeklindedirTcpServer
. Android'de bu seçeneği kullanmadan önce ayarladığınızdanANDROID_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_DiagnosticPorts
ortam değişkenini ayarlamaAndroidEnvironment
:gibi bir ad kullanarak .csproj
app.env
bir dosya oluşturun,DOTNET_DiagnosticPorts=127.0.0.1:9000,suspend
dosyasına ortam değişkenleri ekleyin ve .csprojItemGroup
aşağıdakileri ekleyin:<ItemGroup Condition="'$(AndroidEnableProfiler)'=='true'"> <AndroidEnvironment Include="app.env" /> </ItemGroup>
kullanarak ayarlamak
DOTNET_DiagnosticPorts
adb shell setprop
da 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ığındandotnet-dsrouter
, üzerinde127.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 sunucusunadotnet-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-dsrouter
bitirdiğ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 suspend
nosuspend
DOTNET_DiagnosticPorts
.nosuspend