Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sada .NET SDK obsahuje funkci telemetrie, která shromažďuje data o využití a odesílá je do Microsoftu při použití příkazů .NET CLI. Data o využití zahrnují informace o výjimce, když dojde k havárii nástroje příkazového řádku .NET CLI. .NET CLI se dodává se sadou .NET SDK a je sada příkazů, které umožňují sestavovat, testovat a publikovat aplikace .NET. Telemetrická data pomáhají týmu .NET pochopit, jak se nástroje používají, aby je bylo možné vylepšit. Informace o selháních pomáhají týmu vyřešit problémy a opravit chyby.
Shromážděná data jsou publikována v agregaci v rámci licence Creative Commons Attribution. Některá shromážděná data jsou publikována na .NET CLI Telemetry Data.
Scope
dotnet má dvě funkce: spouštění aplikací a spouštění příkazů rozhraní příkazového řádku. Telemetrie se neshromažďuje při použití dotnet k spuštění aplikace v následujícím formátu:
dotnet [path-to-app].dll
Telemetrie se shromažďují při použití některého z příkazů CLI .NET , například:
dotnet builddotnet packdotnet run
Jak se odhlásit
Funkce telemetrie sady .NET SDK je ve výchozím nastavení povolená pro distribuce sady SDK od Microsoftu. Pokud chcete vyjádřit nesouhlas s funkcí telemetrie, nastavte proměnnou prostředí DOTNET_CLI_TELEMETRY_OPTOUT na 1 nebo true.
Instalační program sady .NET SDK odešle také jednu položku telemetrie, když proběhne úspěšná instalace. Pokud chcete vyjádřit výslovný nesouhlas, nastavte před instalací sady .NET SDK proměnnou prostředí DOTNET_CLI_TELEMETRY_OPTOUT.
Důležitý
Pokud se chcete odhlásit po spuštění instalačního programu: zavřete instalační program, nastavte proměnnou prostředí a spusťte instalační program znovu s danou sadou hodnot.
Zveřejnění
Sada .NET SDK při prvním spuštění jednoho z příkazů rozhraní .NET CLI (například dotnet build) zobrazí text podobný následujícímu. Text se může mírně lišit v závislosti na verzi sady SDK, kterou používáte. Toto prostředí "první spuštění" je způsob, jakým vás Microsoft upozorní na shromažďování dat.
Poznámka:
Změna způsobující chybu: Chování zpráv telemetrie zapsaných do stderr poslední verze sady .NET SDK se změnilo. Další informace naleznete v tématu příkazy CLI dotnet zaznamenávají data nesouvisející s příkazy na stderr.
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
Chcete-li tuto zprávu a uvítací zprávu .NET zakázat, nastavte proměnnou prostředí DOTNET_NOLOGO na true. Všimněte si, že tato proměnná nemá žádný vliv na vypnutí telemetrie.
Datové body
Funkce telemetrie neshromažďuje osobní údaje, jako jsou uživatelská jména nebo e-mailové adresy. Neskenuje kód a neextrahuje data na úrovni projektu, jako je název, úložiště nebo autor. Neextrahuje obsah žádných datových souborů, které jsou přístupné nebo vytvořené vašimi aplikacemi, výpisy paměti obsazené objekty vašich aplikací ani obsah schránky. Data se bezpečně odesílají na servery Microsoftu pomocí technologie azure Monitoru, která se uchovává v omezeném přístupu, a publikují se pod přísnými bezpečnostními prvky ze zabezpečených systémů azure Storage.
Ochrana vašeho soukromí je pro nás důležitá. Pokud máte podezření, že telemetrie shromažďuje citlivá data nebo jsou data nezabezpečená nebo nevhodně zpracována, založte problém v úložišti dotnet/sdk nebo odešlete e-mail dotnet@microsoft.com pro šetření.
Funkce telemetrie shromažďuje následující data:
| Verze sady SDK | Údaje |
|---|---|
| Všichni | Časové razítko vyvolání |
| Všichni | Vyvolán příkaz (například "build"), hashovaný od verze 2.1. |
| Všichni | Tři osmičkové IP adresy používané k určení zeměpisného umístění. |
| Všichni | Operační systém a verze. |
| Všichni | ID prostředí runtime (RID), na kterém je sada SDK spuštěna. |
| Všichni | Verze sady .NET SDK. |
| Všichni | Profil telemetrie: Volitelná hodnota použitá pouze s explicitním souhlasem uživatele a interně použitá v Microsoftu. |
| >=2,0 | Argumenty a možnosti příkazů: shromažďuje se několik argumentů a možností (ne libovolných řetězců). Viz shromažďované možnosti. Bylo hašováno po 2.1.300. |
| >=2,0 | Určuje, jestli sada SDK běží v kontejneru. |
| >=2,0 | Cílové rámce (z události TargetFramework), hashované počínaje verzí 2.1. |
| >=2,0 | Adresa Media Access Control (MAC) s hašováním (SHA256). |
| >=2,0 | Zašifroval aktuální pracovní adresář. |
| >=2,0 | Zpráva o úspěšné instalaci se hashovaným názvem souboru instalačního programu EXE. |
| >=2,1,300 | Verze jádra. |
| >=2,1,300 | Verze/edice Libc. |
| >=3,0,100 | Určuje, jestli byl výstup přesměrován (pravda nebo nepravda). |
| >=3,0,100 | V případě chybového ukončení příkazové řádky nebo sady SDK je zahrnut typ výjimky a trasování zásobníku (v odeslaném trasování zásobníku je zahrnut pouze kód příkazové řádky nebo sady SDK). Další informace najdete v tématu telemetrie výjimek havárií. |
| >=5,0,100 | Hashed TargetFrameworkVersion použitý pro kompilaci (vlastnost MSBuild) |
| >=5,0,100 | Hashed RuntimeIdentifier použitý k sestavení (vlastnost MSBuild) |
| >=5,0,100 | Hashed SelfContained použito pro sestavení (vlastnost MSBuild) |
| >=5,0,100 | Hashed UseApphost použitý pro sestavení (vlastnost MSBuild) |
| >=5,0,100 | Hašovaný typ výstupu použitý pro sestavení (vlastnost MSBuild) |
| >=5.0.201 | Hashed PublishReadyToRun použit pro sestavení (vlastnost MSBuild) |
| >=5.0.201 | Hashed PublishTrimmed použito pro sestavení (vlastnost MSBuild) |
| >=5.0.201 | Hashed PublishSingleFile použitý pro sestavení (vlastnost MSBuild) |
| >=5,0,202 | Uplynulý čas od spuštění procesu až do zadání hlavní metody programu CLI, měření spuštění hostitele a modulu runtime. |
| >=5,0,202 | Uplynulý čas pro krok, který přidá nástroje .NET do cesty při prvním spuštění. |
| >=5,0,202 | Doba uplynulá do zobrazení oznámení o prvním použití při prvním spuštění. |
| >=5,0,202 | Uplynulá doba pro generování ASP.NET certifikátu při prvním spuštění. |
| >=5,0,202 | Uplynulý čas parsování vstupu rozhraní příkazového řádku |
| >=6,0,100 | Architektura operačního systému |
| >=6,0,104 | Hashed PublishReadyToRunUseCrossgen2 použitý pro sestavení (vlastnost MSBuild) |
| >=6,0,104 | Hashed Crossgen2PackVersion se používá pro sestavení (vlastnost MSBuild) |
| >=6,0,104 | Hashed CompileListCount použitý pro sestavení (vlastnost MSBuild) |
| >=6,0,104 | Zahashovaná _ReadyToRunCompilationFailures použitá pro sestavení (vlastnost MSBuild) |
| >=6,0,300 | Pokud se rozhraní příkazového řádku vyvolalo z prostředí kontinuální integrace. Další informace najdete v tématu detekce kontinuální integrace . |
| >=7,0,100 | "Hashed PublishAot" použit pro sestavení (vlastnost MSBuild) |
| >=7,0,100 | Protocol Hashed Publish použitý pro sestavení (vlastnost MSBuild) |
| >=8,0,100 | Hashed TargetPlatformIdentifier použitý pro sestavení (vlastnost MSBuild) |
| >=8,0,100 | Hashed HybridGlobalization použitá pro sestavení (vlastnost MSBuild) |
| >=8,0,100 | Určuje, jestli se používá sada .NET Blazor WebAssembly SDK. |
| >=8,0,100 | Určuje, jestli se používá sada .NET WebAssembly SDK. |
| >=8,0,100 | Určuje, jestli se používá .NET MAUI. |
| >=8,0,100 | Určuje, jestli se používá mobilní sada .NET SDK. |
| >=8,0,100 | Určuje, jestli se používají jiné mobilní sady SDK (například: Avalonia, Uno). |
| >=8,0,100 | Určuje, jestli se používá Mono AOT. |
| >=8,0,100 | Jestli je použita funkce Mono AOT strip IL. |
| >=8,0,100 | Určuje, jestli se používá interpret Mono. |
| >=8,0,100 | Určuje, jestli se používá režim knihovny pro mobilní zařízení. |
| >=8,0,100 | Určuje, jestli se používá NativeAOT. |
| >=8,0,100 | Použitá verze Mono Runtime Pack. |
| >=10,0,100 | Hashovaný identifikátor projektu pro dotnet run. |
| >=10,0,100 | Typ aplikace založené na souborech nebo projektu pro dotnet run. |
| >=10,0,100 | Název spouštěcího profilu, pokud je zadán pro dotnet run. |
| >=10,0,100 | Zda byl zadán spouštěcí profil pro dotnet run. |
| >=10,0,100 | Konfigurační model nastavení spuštění (pokud existuje) pro dotnet run. |
| >=10,0,100 | Počet SDK sad použitých pro dotnet run. |
| >=10,0,100 | Počet odkazů na balíček pro dotnet run. |
| >=10,0,100 | Počet argumentů ProjectReferences pro dotnet run. |
| >=10,0,100 | Počet dalších vlastností pro aplikace založené na souborech s dotnet run. |
| >=10,0,100 | Zda msBuild byl použit pro souborové aplikace s dotnet run. |
| >=10,0,100 | Zda byl kompilátor Roslyn použit pro souborové aplikace s dotnet run. |
| >=10,0,100 | Zjištěný název agenta LLM, pokud bylo příkazové rozhraní vyvoláno z agenta LLM. Další informace najdete v tématu Detekce LLM. |
| >=10,0,100 | Zachytí global.json stav v době, kdy se vyvolá příkaz. Stav je jedna z následujících hodnot: not_found, platné, invalid_json nebo invalid_data. |
| >=10,0,100 | Které továrny úloh MSBuild se používají k načítání a spouštění úloh (včetně vložených úloh jazyka C#, úloh pracujících s více vlákny a úkolů mimo zpracování) a počtu spuštěných úkolů. |
| >=10,0,100 | Počet úloh MSBuild spuštěných v TaskHosts versus úkoly, které nejsou provedeny v TaskHosts. |
Shromažďované možnosti
Některé příkazy odesílají další data. Podmnožina příkazů odešle první argument:
| Příkaz | Odeslaná data prvního argumentu |
|---|---|
dotnet help <arg> |
Na nápovědu k příkazu se dotazuje. |
dotnet new <arg> |
Název šablony (zahashovaný). |
dotnet add <arg> |
Slovo package nebo reference. |
dotnet remove <arg> |
Slovo package nebo reference. |
dotnet list <arg> |
Slovo package nebo reference. |
dotnet sln <arg> |
Slovo add, list, nebo remove. |
dotnet nuget <arg> |
Slovo delete, locals, nebo push. |
dotnet workload <subcommand> <arg> |
Slovo install, update, list, search, uninstall, repair, restore a název úlohy (hashováno). |
dotnet tool <subcommand> <arg> |
Slovo install, update, list, search, uninstall, run a název nástroje dotnet (hashováno). |
Podmnožina příkazů odesílá vybrané možnosti, pokud se použijí, spolu s jejich hodnotami:
| Možnost | Příkazy |
|---|---|
--verbosity |
Všechny příkazy |
--language |
dotnet new |
--configuration |
dotnet build, dotnet clean, dotnet publish, , dotnet rundotnet test |
--framework |
dotnet build, dotnet clean, dotnet publish, dotnet run, , dotnet testdotnet vstest |
--runtime |
dotnet build, dotnet publish |
--platform |
dotnet vstest |
--logger |
dotnet vstest |
--sdk-package-version |
dotnet migrate |
Pokud se sadě SDK nepodaří přeložit předdefinovaný příkaz, jakýkoli překladač příkazů, který úspěšně přeloží příkaz, odešle hodnotu hash názvu příkazu spolu s názvem typu překladače příkazů.
S výjimkou --verbosity a --sdk-package-versionse všechny ostatní hodnoty hashují počínaje sadou .NET Core 2.1.100 SDK.
Telemetrie modulu šablon
Příkaz pro vytvoření instance šablony dotnet new shromažďuje další data pro šablony vytvořené microsoftem počínaje sadou .NET Core 2.1.100 SDK:
--framework--auth
dotnet run telemetry
Příkaz dotnet run shromažďuje telemetrii založenou na funkcích, která pomáhá při vývoji a používání souborových aplikací počínaje sadou .NET SDK 10.0.100:
Telemetrie pro všechna dotnet run spuštění:
- Typ aplikace (souborový nebo projektový)
- Hashovaný projekt nebo identifikátor souboru
- Počet použitých SDK
- Počet odkazů na balíčky
- Počet odkazů na projekty
- Použití profilu spuštění (ať už byl použit
--launch-profilenebo--no-launch-profile) - Určuje, jestli je spouštěcí profil výchozím profilem.
- Použitý model nastavení spuštění, pokud existuje
Telemetrie jenom pro souborové aplikace:
- Počet dalších vlastností (například
#:propertydirektivy) - Určuje, zda se nástroj MSBuild použil během sestavení.
- Zda byl kompilátor Roslyn použit přímo
Telemetrie výjimek a pádů
Pokud dojde k chybovému ukončení rozhraní příkazového řádku nebo sady SDK .NET, shromáždí název výjimky a trasování zásobníku kódu rozhraní příkazového řádku nebo sady SDK. Tyto informace se shromažďují za účelem posouzení problémů a zlepšení kvality sady .NET SDK a rozhraní příkazového řádku. Tento článek obsahuje informace o shromažďovaných datech. Obsahuje také tipy, jak uživatelé vytvářející vlastní verzi sady .NET SDK, aby zabránili neúmyslnému zveřejnění osobních nebo citlivých informací.
Rozhraní příkazového řádku .NET shromažďuje informace pouze pro výjimky rozhraní příkazového řádku nebo sady SDK, nikoli výjimky ve vaší aplikaci. Shromážděná data obsahují název výjimky a trasování zásobníku. Toto je trasování zásobníku kódu z příkazového řádku nebo sady SDK.
Následující příklad ukazuje druh shromážděných dat:
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)
Detekce kontinuální integrace
Aby bylo možné zjistit, jestli rozhraní příkazového řádku .NET CLI běží v prostředí kontinuální integrace, testuje rozhraní příkazového řádku .NET pro přítomnost a hodnoty několika dobře známých proměnných prostředí, které nastavují běžní poskytovatelé CI.
Úplný seznam proměnných prostředí a to, co se děje s jejich hodnotami, je uveden níže. Všimněte si, že v každém případě se hodnota proměnné prostředí nikdy neshromažďuje, používá se pouze k nastavení logického příznaku.
| Proměnné | Poskytovatel | Akce |
|---|---|---|
| TF_BUILD | Azure Pipelines | Analyzovat logickou hodnotu |
| GITHUB_ACTIONS | GitHub Actions | Analyzovat logickou hodnotu |
| APPVEYOR | Appveyor | Analyzovat logickou hodnotu |
| CI | Mnoho/Většina | Analyzovat logickou hodnotu |
| TRAVIS | Travis CI | Analyzovat logickou hodnotu |
| CIRCLECI | CircleCI | Analyzovat logickou hodnotu |
| CODEBUILD_BUILD_ID, AWS_REGION | Amazon Web Services CodeBuild | Zkontrolujte, jestli jsou všechny položky přítomné a nenulové. |
| BUILD_ID, BUILD_URL | Jenkins | Zkontrolujte, jestli jsou všechny položky přítomné a nenulové. |
| ID_STAVBY, ID_PROJEKTU | Google Cloud Build | Zkontrolujte, jestli jsou všechny položky přítomné a nenulové. |
| TEAMCITY_VERSION | TeamCity | Zkontrolujte, zda je přítomný a nenulový |
| JB_SPACE_API_URL | JetBrains Space | Zkontrolujte, zda je přítomný a nenulový |
Detekce LLM
Pokud chcete zjistit, jestli rozhraní příkazového řádku .NET CLI běží v kontextu agenta LLM, testuje rozhraní příkazového řádku .NET pro přítomnost a hodnoty několika proměnných prostředí, které nastavují agenti LLM a pomocníki pro kódování AI.
Následující tabulka ukazuje název agenta, proměnnou prostředí použitou k detekci a hodnotu typu agenta, který je hlášen. Skutečné hodnoty těchto proměnných prostředí se nikdy neshromažďují – slouží pouze k identifikaci typu agenta.
| Agent LLM | Variable | Hodnota |
|---|---|---|
| GitHub Copilot | GITHUB_COPILOT_CLI_MODE | kopilot |
| Claude Code | CLAUDECODE | claude |
| Cursor | CURSOR_EDITOR | "kurzor" |
| Google Gemini | GEMINI_CLI | Gemini |
Pokud je zjištěno více agentů, různé hodnoty agenta jsou zřetězeny čárkou pro vytvoření konečné hodnoty.
Vyhněte se neúmyslnému zveřejnění informací
Přispěvatelé .NET a všichni ostatní, kteří používají verzi sady .NET SDK, kterou sami vytvořili, by měli zvážit cestu ke zdrojovému kódu sady SDK. Pokud dojde k chybě při použití sady .NET SDK, která je vlastní ladící sestavení nebo nakonfigurované s vlastními soubory symbolů sestavení, cesta ke zdrojovému souboru SDK z počítače, na kterém proběhlo sestavení, se shromažďuje jako součást trasování zásobníku a není zahešovaná.
Z tohoto důvodu by vlastní buildy sady .NET SDK neměly být umístěny v adresářích, jejichž názvy cest zveřejňují osobní nebo citlivé informace.
Viz také
- Telemetrická data rozhraní .NET CLI
- referenční zdroj telemetrie (úložiště dotnet/sdk)