Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
.NET SDK- innehåller en telemetrifunktion som samlar in användningsdata och skickar dem till Microsoft när du använder .NET CLI--kommandon. Användningsdata innehåller undantagsinformation när .NET CLI kraschar. .NET CLI levereras med .NET SDK och är en uppsättning verb som gör att du kan skapa, testa och publicera dina .NET-appar. Telemetridata hjälper .NET-teamet att förstå hur verktygen används så att de kan förbättras. Information om fel hjälper teamet att lösa problem och åtgärda buggar.
Insamlade data publiceras aggregerat under Creative Commons Attribution License. En del av de insamlade data publiceras på .NET CLI Telemetry Data.
Omfattning
dotnet har två funktioner: att köra appar och köra CLI-kommandon. Telemetri samlas inte in när dotnet används för att starta ett program i följande format:
dotnet [path-to-app].dll
Telemetri samlas in när du använder något av .NET CLI-kommandon, till exempel:
dotnet builddotnet packdotnet run
Så här avregistrerar du dig
.NET SDK-telemetrifunktionen är aktiverad som standard för Microsoft-distributioner av SDK. Om du vill välja bort telemetrifunktionen anger du DOTNET_CLI_TELEMETRY_OPTOUT miljövariabeln till 1 eller true.
En enda telemetripost skickas också av .NET SDK-installationsprogrammet när en lyckad installation sker. Om du vill avanmäla dig anger du miljövariabeln DOTNET_CLI_TELEMETRY_OPTOUT innan du installerar .NET SDK.
Viktig
Om du vill avanmäla dig när du har startat installationsprogrammet: stäng installationsprogrammet, ange miljövariabeln och kör sedan installationsprogrammet igen med den värdeuppsättningen.
Avslöjande
.NET SDK visar text som liknar följande när du först kör något av .NET CLI-kommandon (till exempel dotnet build). Texten kan variera något beroende på vilken version av SDK du kör. Den här "första körningsupplevelsen" är hur Microsoft meddelar dig om datainsamling.
Anmärkning
Brytningsändring: Beteendet för telemetrimeddelanden som skrivs till stderr har ändrats i de senaste versionerna av .NET SDK. För mer information, se dotnet CLI-kommandon loggar icke-relevanta kommandodata till 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
Om du vill inaktivera det här meddelandet och .NET-välkomstmeddelandet anger du DOTNET_NOLOGO miljövariabeln till true. Observera att den här variabeln har ingen effekt på telemetri avanmälan.
Datapunkter
Telemetrifunktionen samlar inte in personuppgifter, till exempel användarnamn eller e-postadresser. Den söker inte igenom koden och extraherar inte data på projektnivå, till exempel namn, lagringsplats eller författare. Det extraherar inte innehållet i datafiler som används eller skapas av dina appar, inte heller dumpar av minne som upptas av dina appars objekt eller innehållet i urklipp. Data skickas säkert till Microsoft-servrar med hjälp av Azure Monitor- teknik, hålls under begränsad åtkomst och publiceras under strikta säkerhetskontroller från säkra Azure Storage-system.
Att skydda din integritet är viktigt för oss. Om du misstänker att telemetrin samlar in känsliga data eller om data hanteras på ett osäkert eller olämpligt sätt kan du skicka ett problem i dotnet/sdk lagringsplats eller skicka ett e-postmeddelande till dotnet@microsoft.com för undersökning.
Telemetrifunktionen samlar in följande data:
| SDK-versioner | Uppgifter |
|---|---|
| Alla | Tidsstämpel för anrop. |
| Alla | Kommandot anropas (till exempel "build"), hasherat från och med 2.1. |
| Alla | IP-adress med tre oktetter används för att fastställa den geografiska platsen. |
| Alla | Operativsystem och version. |
| Alla | Körnings-ID (RID) på vilket SDK:t körs. |
| Alla | .NET SDK-version. |
| Alla | Telemetriprofil: ett valfritt värde som endast används med explicit användaranmälning och används internt på Microsoft. |
| >=2,0 | Kommandoargument och alternativ: flera argument och alternativ samlas in (inte godtyckliga strängar). Se insamlade alternativ. Hashade efter 2.1.300. |
| >=2,0 | Om SDK:et körs i en container. |
| >=2,0 | Målramverk (från händelsen TargetFramework), hashade från och med 2.1. |
| >=2,0 | Hashed Media Access Control (MAC)-adress (SHA256). |
| >=2,0 | Hashade aktuell arbetskatalog. |
| >=2,0 | Rapport om lyckad installation med det hashade exe-filnamnet för installationsprogrammet. |
| >=2.1.300 | Kernel-version. |
| >=2.1.300 | Libc utgåva/version. |
| >=3.0.100 | Om utdata omdirigerades (sant eller falskt). |
| >=3.0.100 | Vid en CLI/SDK-krasch ingår undantagstypen och dess stacktrace (endast CLI/SDK-koden ingår i den stacktrace som skickas). För mer information, se undantagstelemetri för krasch. |
| >=5.0.100 | Hashed TargetFrameworkVersion som används för kompilering (MSBuild-egenskap) |
| >=5.0.100 | Hashed RuntimeIdentifier som används för kompilering (MSBuild-egenskap) |
| >=5.0.100 | Hashed SelfContained används för kompilering (MSBuild-egenskap) |
| >=5.0.100 | Hashed UseApphost används för bygget (MSBuild-egenskap) |
| >=5.0.100 | Hashed OutputType används vid kompilation (MSBuild-egenskap) |
| >=5.0.201 | Hashed PublishReadyToRun används för build (MSBuild-egenskap) |
| >=5.0.201 | Hashed PublishTrimmed används för kompilering (MSBuild-egenskap) |
| >=5.0.201 | Hashed PublishSingleFile används för kompilering (MSBuild-egenskap) |
| >=5.0.202 | Förfluten tid från processstart till inträdet i CLI-programmets huvudmetod, vilket mäter värd- och körningens starttid. |
| >=5.0.202 | Förfluten tid för steget som lägger till .NET Tools i sökvägen vid första körningen. |
| >=5.0.202 | Den tid som har förflutit för att visa det första användningsmeddelandet vid första starten. |
| >=5.0.202 | Förfluten tid för att generera ASP.NET certifikat vid första körningen. |
| >=5.0.202 | Förfluten tid för att parsa CLI-indata. |
| >=6.0.100 | OS-arkitektur |
| >=6.0.104 | Hashed PublishReadyToRunUseCrossgen2 används för kompilering (MSBuild-egenskap) |
| >=6.0.104 | Hashed Crossgen2PackVersion används för kompilering (MSBuild-egenskap) |
| >=6.0.104 | Hashed CompileListCount används för bygge (MSBuild-egenskap) |
| >=6.0.104 | Hashade _ReadyToRunCompilationFailures används för kompilering (MSBuild-egenskap) |
| >=6.0.300 | Om CLI anropades från en miljö för kontinuerlig integrering. För mer information, se Detektering av kontinuerlig integration. |
| >=7.0.100 | Hashed PublishAot används för kompilering (MSBuild-egenskap) |
| >=7.0.100 | Hashed PublishProtocol används för kompilering (MSBuild-egenskap) |
| >=8.0.100 | Hashed TargetPlatformIdentifier används för kompilering (MSBuild-egenskap) |
| >=8.0.100 | Hashed HybridGlobalization används för att bygga (MSBuild-egenskap) |
| >=8.0.100 | Om .NET Blazor WebAssembly SDK används. |
| >=8.0.100 | Om .NET WebAssembly SDK används. |
| >=8.0.100 | Om .NET MAUI används. |
| >=8.0.100 | Om .NET Mobile SDK används. |
| >=8.0.100 | Om andra mobila SDK:er används (till exempel: Avalonia, Uno). |
| >=8.0.100 | Om Mono AOT används. |
| >=8.0.100 | Huruvida Mono AOT strip IL-funktionen används. |
| >=8.0.100 | Om monotolkare används. |
| >=8.0.100 | Om biblioteksläget för mobila enheter används. |
| >=8.0.100 | Om NativeAOT används. |
| >=8.0.100 | Versionen av Mono-körningspaketet som användes. |
| >=10.0.100 | Hash-projektidentifierare för dotnet run. |
| >=10.0.100 | Programtyp för antingen filbaserad app eller projektbaserad för dotnet run. |
| >=10.0.100 | Startprofilnamnet om det anges för dotnet run. |
| >=10.0.100 | Om en startprofil har angetts för dotnet run. |
| >=10.0.100 | Konfigurationsmodellen för startinställningar som används (om någon) för dotnet run. |
| >=10.0.100 | Antal SDK:er som används för dotnet run. |
| >=10.0.100 | Antal paketreferenser för dotnet run. |
| >=10.0.100 | Antal ProjectReferences för dotnet run. |
| >=10.0.100 | Antal ytterligare egenskaper för filbaserade appar med dotnet run. |
| >=10.0.100 | Om MSBuild användes för filbaserade appar med dotnet run. |
| >=10.0.100 | Om Roslyn-kompilatorn användes för filbaserade appar med dotnet run. |
| >=10.0.100 | Det identifierade LLM-agentnamnet när CLI anropades av en LLM-agent. Mer information finns i LLM-identifiering. |
| >=10.0.100 |
global.json Registrerar tillståndet när ett kommando anropas. Tillståndet är ett av följande värden: not_found, giltig, invalid_json eller invalid_data. |
| >=10.0.100 | Vilka MSBuild-aktivitetsfabriker används för att läsa in och köra uppgifter (inklusive infogade C#-uppgifter, flertrådade uppgifter och uppgifter som inte är processbaserade) och hur många uppgifter de utför. |
| >=10.0.100 | Antal MSBuild-uppgifter som körs i TaskHosts jämfört med uppgifter som inte körs i TaskHosts. |
Sammanställda alternativ
Vissa kommandon skickar ytterligare data. En delmängd av kommandon skickar det första argumentet:
| Befallning | Första argumentdata som skickats |
|---|---|
dotnet help <arg> |
Kommandohjälpen efterfrågas. |
dotnet new <arg> |
Mallnamnet (hashat). |
dotnet add <arg> |
Ordet package eller reference. |
dotnet remove <arg> |
Ordet package eller reference. |
dotnet list <arg> |
Ordet package eller reference. |
dotnet sln <arg> |
Ordet add, listeller remove. |
dotnet nuget <arg> |
Ordet delete, localseller push. |
dotnet workload <subcommand> <arg> |
Ordet install, update, list, search, uninstall, repair, restore, och arbetsbelastningsnamnet (hashed). |
dotnet tool <subcommand> <arg> |
Ordet install, update, list, search, uninstall, run och dotnet verktygsnamn (hashad). |
En delmängd av kommandon skickar valda alternativ om de används, tillsammans med deras värden:
| Alternativ | Kommandon |
|---|---|
--verbosity |
Alla kommandon |
--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 |
När SDK:et inte löser ett inbyggt kommando skickar alla kommandomatchare som löser kommandot en hash av kommandonamnet tillsammans med namnet på kommandomatchartypen.
Förutom --verbosity och --sdk-package-versionhashas alla andra värden från och med .NET Core 2.1.100 SDK.
Telemetri för mallmotor
Instansieringskommandot dotnet new mall samlar in ytterligare data för Microsoft-skapade mallar, från och med .NET Core 2.1.100 SDK:
--framework--auth
dotnet run telemetry
Kommandot dotnet run samlar in funktionsbaserad telemetri för att bidra till utveckling och användning av filbaserade appar, från och med .NET SDK 10.0.100:
Telemetri för alla dotnet run exekveringar:
- Programtyp (filbaserad eller projektbaserad)
- Hashat projekt eller filidentifierare
- Antal SDK:er som används
- Antal paketreferenser
- Antal Projektreferenser
- Starta profilanvändning (om
--launch-profileeller--no-launch-profileanvändes) - Om startprofilen är en standardprofil
- Starta inställningsmodell som tillämpas, om någon
Telemetri endast för filbaserade appar:
- Antal ytterligare egenskaper (till exempel
#:propertydirektiv) - Om MSBuild användes för att bygga
- Om Roslyn-kompilatorn användes direkt
Telemetri för kraschundantag
Om .NET CLI/SDK kraschar samlar den in namnet på undantaget och stackspårningen av CLI/SDK-koden. Den här informationen samlas in för att utvärdera problem och förbättra kvaliteten på .NET SDK och CLI. Den här artikeln innehåller information om de data vi samlar in. Det ger också tips om hur användare som skapar sin egen version av .NET SDK kan undvika oavsiktligt avslöjande av personlig eller känslig information.
.NET CLI samlar endast in information om CLI/SDK-undantag, inte undantag i ditt program. De insamlade data innehåller namnet på undantaget och stackspårningen. Den här stackspårningen är från CLI/SDK-kod.
I följande exempel visas den typ av data som samlas in:
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)
Kontinuerlig integration detektion
För att identifiera om .NET CLI körs i en miljö för kontinuerlig integrering avsöker .NET CLI förekomsten och värdena för flera välkända miljövariabler som vanliga CI-providers anger.
Den fullständiga listan över miljövariabler och vad som görs med deras värden visas nedan. Observera att värdet för miljövariabeln i varje fall aldrig samlas in, endast används för att ange en boolesk flagga.
| Variabel(ler) | Leverantör | Handling |
|---|---|---|
| TF_BUILD | Azure-pipelines | Parsa booleskt värde |
| GITHUB_ACTIONS | GitHub Actions (verktyg för arbetsflöden) | Parsa booleskt värde |
| APPVEYOR | Appveyor | Parsa booleskt värde |
| CI (Kontinuerlig integration) | Många/mest | Parsa booleskt värde |
| TRAVIS | Travis CI | Parsa booleskt värde |
| CIRCLECI | CircleCI | Parsa booleskt värde |
| CODEBUILD_BUILD_ID, AWS_REGION | Amazon Web Services CodeBuild | Kontrollera om alla finns och inte är null |
| BUILD_ID, BUILD_URL | Jenkins | Kontrollera om alla finns och inte är null |
| Bygg_ID, Projekt_ID | Google Cloud Build | Kontrollera om alla finns och inte är null |
| TEAMCITY_VERSION | TeamCity | Kontrollera om det finns och inte är null-värde |
| JB_SPACE_API_URL | JetBrains-utrymme | Kontrollera om det finns och inte är null-värde |
LLM-identifiering
För att identifiera om .NET CLI körs i kontexten för en LLM-agent avsöker .NET CLI förekomsten och värdena för flera miljövariabler som LLM-agenter och AI-kodningsassistenter anger.
I följande tabell visas agentnamnet, miljövariabeln som används för identifiering och värdet för den agenttyp som rapporteras. De faktiska värdena för dessa miljövariabler samlas aldrig in – används bara för att identifiera agenttypen.
| LLM-agent | Variable | Värde |
|---|---|---|
| GitHub Copilot | GITHUB_COPILOT_CLI_MODE | copilot |
| Claude Code | CLAUDECODE | "claude" |
| Cursor | CURSOR_EDITOR | "markör" |
| Google Gemini | GEMINI_CLI | "gemini" |
Om flera agenter identifieras sammanfogas de olika agentvärdena med ett kommatecken för att generera det slutliga värdet.
Undvik oavsiktligt avslöjande av information
.NET-deltagare och alla andra som kör en version av .NET SDK som de har skapat själva bör överväga sökvägen till sin SDK-källkod. Om en krasch inträffar när du använder en .NET SDK som är en anpassad felsökningsversion eller konfigureras med anpassade build-symbolfiler, samlas SDK-källfilens sökväg från byggdatorn in som en del av stackspårningen och hashas inte.
Därför bör anpassade versioner av .NET SDK inte finnas i kataloger vars sökvägsnamn exponerar personlig eller känslig information.