.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 true
olarak 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 true
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 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 reference sözcüğüpackage . |
dotnet remove <arg> |
veya reference sözcüğüpackage . |
dotnet list <arg> |
veya reference sözcüğüpackage . |
dotnet sln <arg> |
, list veya remove sözcüğüadd . |
dotnet nuget <arg> |
, locals veya push sözcüğüdelete . |
dotnet workload <subcommand> <arg> |
, , update , list , , search , uninstall , repair restore ve sözcüğü install ve iş yükü adı (karma). |
dotnet tool <subcommand> <arg> |
, , update , list , search , uninstall run ve sözcüğü install ve 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-version
dışı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.