Aracılığıyla paylaş


.NET SDK ve .NET CLI telemetrisi

.NET SDK'sı, .NET CLI komutlarını kullandığınızda kullanım verilerini toplayan ve Microsoft'a gönderen bir telemetri özelliği içerir. .NET CLI kilitlendiğinde kullanım verileri özel durum 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ı kapsamında toplu olarak yayımlanır. Toplanan verilerin bazıları .NET CLI Telemetri Verileri'nde 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 kullanılırken dotnet telemetri toplanmaz:

  • dotnet [path-to-app].dll

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

  • dotnet build
  • dotnet pack
  • dotnet run

Geri çevirme

.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 ortam değişkenini DOTNET_CLI_TELEMETRY_OPTOUT veya trueolarak 1 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. Geri çevirmek için.NET SDK'sını DOTNET_CLI_TELEMETRY_OPTOUT yüklemeden önce 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 CLI komutlarından birini (örneğin, dotnet build) ilk kez çalıştırdığınızda .NET SDK'sı 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 çalıştırma" deneyimi, Microsoft'un veri toplama hakkında size nasıl bilgilendirdiğidir.

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 ortam değişkenini DOTNET_NOLOGO olarak trueayarlayı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 adresine dotnet@microsoft.com bir e-posta gönderin.

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

SDK sürümleri Veri
Tümünü Çağırmanın zaman damgası.
Tümünü Komut çağrılır (örneğin, "derleme"), 2.1'den başlayarak karma olarak kullanılır.
Tümünü Coğrafi konumu belirlemek için kullanılan üç sekizli IP adresi.
Tümünü İşletim sistemi ve sürüm.
Tümünü SDK'nın üzerinde çalıştığı Çalışma Zamanı Kimliği (RID).
Tümünü .NET SDK sürümü.
Tümünü 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). Toplanan seçeneklere bakın. 2.1.300 sonrasında karma.
>=2,0 SDK'nın bir kapsayıcıda çalışıp çalışmadığı.
>=2,0 Hedef çerçeveler (olaydan TargetFramework ), karma 2.1'den başlayarak.
>=2,0 Karma Medya Erişim Denetimi (MAC) adresi (SHA256).
>=2,0 Karma geçerli çalışma dizini.
>=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 kilitlenmesinde, özel durum 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 Karma TargetFrameworkVersion (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Karma RuntimeIdentifier (MSBuild özelliği)
>=5.0.100 Derleme için kullanılan Karma 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 Karma OutputType (MSBuild özelliği)
>=5.0.201 Derleme için kullanılan Hashed PublishReadyToRun (MSBuild özelliği)
>=5.0.201 Derleme için kullanılan Karma PublishTrimmed (MSBuild özelliği)
>=5.0.201 Derleme için kullanılan Karma PublishSingleFile (MSBuild özelliği)
>=5.0.202 İşlem başlangıcından CLI programının ana yöntemine girene kadar geçen süre, konak ve çalışma zamanı başlatmasını ölçene kadar.
>=5.0.202 İlk çalıştırmada yola .NET Araçları ekleyen adım için geçen süre.
>=5.0.202 İlk çalıştırmada 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 Derleme için kullanılan Hashed PublishReadyToRunUseCrossgen2 (MSBuild özelliği)
>=6.0.104 Derleme için kullanılan Karma Crossgen2PackVersion (MSBuild özelliği)
>=6.0.104 Derleme için kullanılan Karma DerlemeListCount (MSBuild özelliği)
>=6.0.104 Derleme için kullanılan karma _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 Tümleştirme Algılama.
>=7.0.100 Derleme için kullanılan Karma PublishAot (MSBuild özelliği)
>=7.0.100 Derleme için kullanılan Karma PublishProtocol (MSBuild özelliği)
>=8.0.100 Derleme için kullanılan Karma TargetPlatformIdentifier (MSBuild özelliği)
>=8.0.100 Derleme için kullanılan Karma Karma KarmaGlobalizasyon (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 bağımsız değişkeni gönderir:

Command gönderilen ilk bağımsız değişken verileri
dotnet help <arg> Komut yardımı sorgulanıyor.
dotnet new <arg> Şablon adı (karma).
dotnet add <arg> veya referencesözcüğüpackage.
dotnet remove <arg> veya referencesözcüğüpackage.
dotnet list <arg> veya referencesözcüğüpackage.
dotnet sln <arg> , listveya removesözcüğüadd.
dotnet nuget <arg> , localsveya pushsözcüğüdelete.
dotnet workload <subcommand> <arg> , , update, list, , search, uninstall, repairrestore ve sözcüğü installve iş yükü adı (karma).
dotnet tool <subcommand> <arg> , , update, list, search, uninstallrun ve sözcüğü installve dotnet araç adı (karma).

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

--verbosity ve --sdk-package-versiondışında, diğer tüm değerler .NET Core 2.1.100 SDK'sı ile başlayarak karma olarak oluşturulur.

Şablon altyapısı telemetrisi

dotnet new Şablon örneği oluşturma komutu, .NET Core 2.1.100 SDK'sı ile başlayarak Microsoft tarafından yazılan şablonlar için ek veriler toplar:

  • --framework
  • --auth

Kilitlenme özel durum telemetrisi

.NET CLI/SDK kilitlenirse, özel durumun adını toplar 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 Provider Eylem
TF_BUILD Azure Pipelines 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 Daire CI Boole değerini ayrıştırma
CODEBUILD_BUILD_ID, AWS_REGION 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_ID, PROJECT_ID 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 bir hata ayıklama derlemesi olan veya özel derleme sembol dosyalarıyla yapılandırılmış bir .NET SDK'sı kullanılırken kilitlenme oluşursa, derleme makinesindeki SDK kaynak dosya yolu yığın izlemesinin bir parçası olarak toplanır ve karma değildir.

Bu nedenle, .NET SDK'sının özel derlemeleri yol adları kişisel veya hassas bilgileri kullanıma sunan dizinlerde bulunmamalıdır.

Ayrıca bkz.