İngilizce dilinde oku

Aracılığıyla paylaş


.NET SDK ve .NET CLI telemetrisi

.NET SDK, kullanım verilerini toplayan ve .NET CLI komutlarını kullandığınızda bunu Microsoft'a gönderen bir telemetri özelliği içerir. .NET CLI çöktüğünde kullanım verileri istisna bilgilerini içerir. .NET CLI, .NET SDK ile birlikte gelir ve .NET uygulamalarınızı derlemenizi, test etmenizi ve yayımlamanızı sağlayan fiil kümesidir. Telemetri verileri, .NET ekibinin araçların nasıl kullanıldığını anlamasına yardımcı olur ve böylece iyileştirilebilir. Hatalarla ilgili bilgiler, ekibin sorunları çözmesine ve hataları düzeltmesine yardımcı olur.

Toplanan veriler, Creative Commons Attribution Lisansıaltında toplu olarak yayımlanır. Toplanan verilerin bazıları .NET CLI Telemetri Verilerikonumunda yayımlanır.

Kapsam

dotnet iki işlevi vardır: uygulamaları çalıştırmak ve CLI komutlarını yürütmek. Bir uygulamayı aşağıdaki biçimde başlatmak için dotnet kullanılırken telemetri toplanmaz:

  • dotnet [path-to-app].dll

Telemetri ,gibi .NET CLI komutlarından herhangi biri kullanılırken toplanır:

  • dotnet build
  • dotnet pack
  • dotnet run

Abonelikten Çıkma Yolu

.NET SDK telemetri özelliği, SDK'nın Microsoft dağıtımları için varsayılan olarak etkindir. Telemetri özelliğini geri çevirmek için DOTNET_CLI_TELEMETRY_OPTOUT ortam değişkenini 1 veya trueolarak ayarlayın.

Başarılı bir yükleme gerçekleştiğinde .NET SDK yükleyicisi tarafından tek bir telemetri girdisi de gönderilir. .NET SDK'sını yüklemeden önce devre dışı bırakmak için DOTNET_CLI_TELEMETRY_OPTOUT ortam değişkenini ayarlayın.

Önemli

Yükleyiciyi başlattıktan sonra geri çevirmek için: Yükleyiciyi kapatın, ortam değişkenini ayarlayın ve ardından yükleyiciyi bu değer kümesiyle yeniden çalıştırın.

Açıklama

.NET SDK'sı, .NET CLI komutlarından birini ilk kez çalıştırdığınızda (örneğin, ) aşağıdakine benzer bir metin görüntüler. Metin, çalıştırdığınız SDK sürümüne bağlı olarak biraz farklılık gösterebilir. Bu "ilk kullanım" deneyimi, Microsoft'un veri toplama hakkında sizi bilgilendirme şeklidir.

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

Bu iletiyi ve .NET karşılama iletisini devre dışı bırakmak için DOTNET_NOLOGO ortam değişkenini trueolarak ayarlayın. Bu değişkenin telemetriyi geri çevirme üzerinde hiçbir etkisi olmadığını unutmayın.

Veri noktaları

Telemetri özelliği, kullanıcı adları veya e-posta adresleri gibi kişisel verileri toplamaz. Kodunuzu taramaz ve ad, depo veya yazar gibi proje düzeyinde verileri ayıklamaz. Uygulamalarınız tarafından erişilen veya oluşturulan veri dosyalarının içeriğini, uygulamalarınızın nesneleri tarafından kaplanmış bellek dökümlerini veya panonun içeriğini ayıklamaz. Veriler Azure İzleyici teknolojisi kullanılarak Microsoft sunucularına güvenli bir şekilde gönderilir, kısıtlı erişim altında tutulur ve güvenli Azure Depolama sistemlerinden sıkı güvenlik denetimleri altında yayımlanır.

Gizliliğinizi korumak bizim için önemlidir. Telemetrinin hassas verileri topladığını veya verilerin güvenli olmadığını veya uygunsuz şekilde işlendiğini düşünüyorsanız, dotnet/sdk deposunda bir sorun oluşturun veya araştırma için dotnet@microsoft.com'e bir e-posta gönderin.

Telemetri özelliği aşağıdaki verileri toplar:

SDK sürümleri Veri
Tüm Çağırmanın zaman damgası.
Tüm Komut çağrılır (örneğin, "derleme"), 2.1 sürümünden itibaren karma olarak işlenmeye başlar.
Tüm Coğrafi konumu belirlemek için kullanılan üç sekizli IP adresi.
Tüm İşletim sistemi ve sürüm.
Tüm SDK'nın üzerinde çalıştığı Çalışma Zamanı Kimliği (RID).
Tüm .NET SDK sürümü.
Tüm Telemetri profili: yalnızca açık kullanıcı kabul etme ile kullanılan ve Microsoft'ta dahili olarak kullanılan isteğe bağlı bir değerdir.
>=2.0 Komut bağımsız değişkenleri ve seçenekleri: çeşitli bağımsız değişkenler ve seçenekler toplanır (rastgele dizeler değil). Bkz. toplanan seçenekler. 2.1.300 sonrasında karma hale getirilmiş.
>=2.0 SDK'nın bir kapsayıcıda çalışıp çalışmadığı.
>=2.0 Hedef çerçeveler (TargetFramework etkinliğinden), 2.1'den başlayarak hashlenmiştir.
>=2.0 Karıştırılmış Medya Erişim Kontrolü (MAC) adresi (SHA256).
>=2.0 Geçerli çalışma dizini hash'lendi.
>=2.0 Karma yükleyici exe dosya adıyla başarı raporunu yükleyin.
>=2.1.300 Çekirdek sürümü.
>=2.1.300 Libc sürümü/sürümü.
>=3.0.100 Çıkışın yeniden yönlendirilip yönlendirilmediği (true veya false).
>=3.0.100 CLI/SDK çökmesi durumunda, istisna türü ve yığın izlemesi (gönderilen yığın izlemesine yalnızca CLI/SDK kodu dahildir). Daha fazla bilgi için bkz. Kilitlenme özel durum telemetrisi.
>=5.0.100 Derleme için kullanılan TargetFrameworkVersion karması (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Karma RuntimeIdentifier (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Karmalanmış SelfContained (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Karma UseApphost (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Hashlenmiş Çıkış Türü (MSBuild özelliği)
>=5.0.201 Derleme için kullanılan Hashed PublishReadyToRun (MSBuild özelliği)
>=5.0.201 Derleme için Hashed PublishTrimmed kullanılan (MSBuild özelliği)
>=5.0.201 Derleme için kullanılan PublishSingleFile karması (MSBuild özelliği)
>=5.0.202 İşlem başlangıcından CLI programının ana yöntemine girene kadar, sunucu ve çalışma zamanı başlatmalarının süresini ölçmek.
>=5.0.202 İlk çalıştırmada .NET Araçları'nı yola ekleyen adım için geçen süre.
>=5.0.202 İlk kez çalıştırıldığında ilk kullanım bildirimini görüntülemek için geçen süre.
>=5.0.202 İlk çalıştırmada ASP.NET Sertifikası oluşturmak için geçen süre.
>=5.0.202 CLI girişini ayrıştırmak için geçen süre.
>= 6.0.100 İşletim sistemi mimarisi
>=6.0.104 Derlemede kullanılan Hashed PublishReadyToRunUseCrossgen2 (MSBuild özelliği)
>=6.0.104 Kodlanmış Crossgen2PackVersion yapısı için kullanılır (MSBuild özelliği)
>=6.0.104 Derleme için kullanılan Hashed CompileListCount (MSBuild özelliği)
>=6.0.104 Derleme için karma hale getirilen _ReadyToRunCompilationFailures (MSBuild özelliği)
>=6.0.300 CLI bir Sürekli Tümleştirme ortamından çağrıldıysa. Daha fazla bilgi için bkz. Sürekli Entegrasyon Tespiti.
>=7.0.100 Derleme için kullanılan hashlenmiş PublishAot (MSBuild özelliği)
>=7.0.100 Derleme için kullanılan Hashlenmiş PublishProtocol (MSBuild özelliği)
>=8.0.100 Derleme için kullanılan Hashlenmiş TargetPlatformIdentifier (MSBuild özelliği)
>=8.0.100 Derleme için kullanılan Hashed HybridGlobalizasyon (MSBuild özelliği)
>=8.0.100 .NET Blazor WebAssembly SDK'sı kullanılıp kullanılmadığı.
>=8.0.100 .NET WebAssembly SDK'sı kullanılıp kullanılmadığı.
>=8.0.100 .NET MAUI kullanılıp kullanılmadığı.
>=8.0.100 .NET mobil SDK'sı kullanılıp kullanılmadığı.
>=8.0.100 Diğer mobil SDK'ların kullanılıp kullanılmadığı (örneğin: Avalonia, Uno).
>=8.0.100 Mono AOT kullanılıp kullanılmadığı.
>=8.0.100 Mono AOT şerit IL özelliğinin kullanılıp kullanılmadığı.
>=8.0.100 Mono yorumlayıcının kullanılıp kullanılmadığı.
>=8.0.100 Mobil cihazlar için kitaplık modunun kullanılıp kullanılmadığı.
>=8.0.100 NativeAOT'un kullanılıp kullanılmadığı.
>=8.0.100 Kullanılan Mono çalışma zamanı paketi sürümü.

Toplanan seçenekler

Bazı komutlar ek veri gönderir. Komutların bir alt kümesi ilk argümanı gönderir.

Komut İlk argüman verisi gönderildi.
dotnet help <arg> Komut yardımı isteniyor.
dotnet new <arg> Şablon adı (hash edilmiş)
dotnet add <arg> package veya referencesözcüğü.
dotnet remove <arg> package veya referencesözcüğü.
dotnet list <arg> package veya referencesözcüğü.
dotnet sln <arg> add, listveya removesözcüğü.
dotnet nuget <arg> delete, localsveya pushsözcüğü.
dotnet workload <subcommand> <arg> install, update, list, search, uninstall, repair, restore ve iş yükü adı (karma) sözcüğü.
dotnet tool <subcommand> <arg> install, update, list, search, uninstall, run ve dotnet araç adı (karma) sözcüğü.

Komutların bir alt kümesi, değerleriyle birlikte kullanıldıklarında seçili seçenekleri gönderir:

Seçenek Komutlar
--verbosity Tüm komutlar
--language dotnet new
--configuration dotnet build, dotnet clean, dotnet publish, dotnet run, dotnet test
--framework dotnet build, dotnet clean, dotnet publish, dotnet run, dotnet test, dotnet vstest
--runtime dotnet build, dotnet publish
--platform dotnet vstest
--logger dotnet vstest
--sdk-package-version dotnet migrate

SDK yerleşik bir komutu çözümleyemediğinde, komutu başarıyla çözümleyen herhangi bir komut çözümleyicisi, komut çözümleyici türünün adıyla birlikte komut adının karması gönderir.

.NET Core 2.1.100 SDK'nin başlamasıyla, --verbosity ve --sdk-package-versiondışında, diğer tüm değerler karma işlemine tabi tutulur.

Şablon motoru telemetrisi

dotnet new şablonu örnekleme komutu, .NET Core 2.1.100 SDK'dan başlayarak Microsoft tarafından yazılan şablonlar için ek veriler toplar:

  • --framework
  • --auth

Kilitlenme istisna telemetrisi

.NET CLI/SDK kilitlenirse, oluşan özel durumun adını ve CLI/SDK kodunun yığın izlemesini toplar. Bu bilgiler sorunları değerlendirmek ve .NET SDK ve CLI kalitesini artırmak için toplanır. Bu makalede topladığımız veriler hakkında bilgi sağlanır. Ayrıca kendi .NET SDK sürümünü oluşturan kullanıcıların kişisel veya hassas bilgilerin yanlışlıkla açıklanmasını nasıl önleyebileceğine ilişkin ipuçları da sağlar.

.NET CLI, uygulamanızdaki özel durumlar için değil yalnızca CLI/SDK özel durumları için bilgi toplar. Toplanan veriler özel durumun adını ve yığın izlemesini içerir. Bu yığın izlemesi CLI/SDK koduna ait.

Aşağıdaki örnekte toplanan verilerin türü gösterilmektedir:

System.IO.IOException
at System.ConsolePal.WindowsConsoleStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.IO.StreamWriter.Write(Char[] buffer)
at System.IO.TextWriter.WriteLine()
at System.IO.TextWriter.SyncTextWriter.WriteLine()
at Microsoft.DotNet.Cli.Utils.Reporter.WriteLine()
at Microsoft.DotNet.Tools.Run.RunCommand.EnsureProjectIsBuilt()
at Microsoft.DotNet.Tools.Run.RunCommand.Execute()
at Microsoft.DotNet.Tools.Run.RunCommand.Run(String[] args)
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)

Sürekli Tümleştirme Algılama

.NET CLI'nın Sürekli Tümleştirme ortamında çalışıp çalışmadığını algılamak için. .NET CLI, yaygın CI sağlayıcılarının ayarlandığı birçok iyi bilinen ortam değişkeninin varlığını ve değerlerini yoklar.

Ortam değişkenlerinin tam listesi ve değerleriyle yapılanlar aşağıda gösterilmiştir. Her durumda ortam değişkeninin değerinin hiçbir zaman toplanmadığını, yalnızca boole bayrağı ayarlamak için kullanıldığını unutmayın.

Değişkenler Sağlayıcı Eylem
TF_BUILD Azure İş Hatları Boole değerini ayrıştırma
GITHUB_ACTIONS GitHub Actions Boole değerini ayrıştırma
APPVEYOR Uygulama Boole değerini ayrıştırma
CI Çok/En Çok Boole değerini ayrıştırma
TRAVİS Travis CI Boole değerini ayrıştırma
CIRCLECI Circle CI Boole değerini ayrıştırma
CODEBUILD_BUILD_ID, AWS_REGION (AWS'de kullanılan sabit tanımlayıcılar) Amazon Web Services CodeBuild Tümünün mevcut olup olmadığını ve null olmadığını denetleyin
BUILD_ID, BUILD_URL Jenkins Tümünün mevcut olup olmadığını ve null olmadığını denetleyin
BUILD_KİMLİĞİ, PROJE_KİMLİĞİ Google Cloud Build Tümünün mevcut olup olmadığını ve null olmadığını denetleyin
TEAMCITY_VERSION TeamCity Mevcut olup olmadığını ve null olup olmadığını denetleyin
JB_SPACE_API_URL JetBrains Space Mevcut olup olmadığını ve null olup olmadığını denetleyin

Bilgilerin yanlışlıkla açıklanmasını önle

.NET katkıda bulunanları ve kendi oluşturduğu .NET SDK'sının bir sürümünü çalıştıran diğer herkes SDK kaynak kodunun yolunu dikkate almalıdır. Özel hata ayıklama derlemesi veya özel derleme sembol dosyalarıyla yapılandırılmış bir .NET SDK'sı kullanılırken kilitlenme oluşursa, yığın izlemesi kapsamında derleme makinesindeki SDK kaynak dosya yolu toplanır ve şifrelenmez.

Bu nedenle, .NET SDK'nın özel derlemeleri kişisel veya hassas bilgileri ifşa eden dizinlerde bulunmamalıdır.

Ayrıca bkz.