Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
.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.
Installationsprogrammet för .NET SDK skickar en enda telemetripost 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 utdata när du först kör ett av .NET CLI-kommandona (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.
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. **
Den här variabeln påverkar inte möjligheten att välja bort telemetri.
Anmärkning
Breaking change: Beteendet för telemetrimeddelanden som skrivs till har ändrats i de senaste versionerna av .NET SDK. För mer information, se dotnet CLI-kommandon loggar icke-relevanta kommandodata till stderr.
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 . Data lagras 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 Microsoft. 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 skapa ett problem på dotnet/sdk-lagringsplatsen .
Mer information om din sekretess och dina personuppgifter som samlas in finns i Microsofts sekretesspolicy.
Följande flikar visar telemetridata som samlas in av SDK-versionen:
-
SDK version 10.0.100 och senare:
- Hash-projektidentifierare för
dotnet run. - Programtyp för antingen filbaserad app eller projektbaserad för
dotnet run. - Startprofilnamnet om det anges för
dotnet run. - Om en startprofil har angetts för
dotnet run. - Konfigurationsmodellen för startinställningar som används (om någon) för
dotnet run. - Antal SDK:er som används för
dotnet run. - Antal paketreferenser för
dotnet run. - Antal ProjectReferences för
dotnet run. - Antal ytterligare egenskaper för filbaserade appar med
dotnet run. - Om MSBuild användes för filbaserade appar med
dotnet run. - Om Roslyn-kompilatorn användes för filbaserade appar med
dotnet run. - Det identifierade LLM-agentnamnet när CLI anropades av en LLM-agent. Mer information finns i LLM-identifiering.
-
global.jsonRegistrerar tillståndet när ett kommando anropas. Tillståndet är ett av följande värden: not_found, giltig, invalid_json eller invalid_data. - 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.
- Antal MSBuild-uppgifter som körs i TaskHosts jämfört med uppgifter som inte körs i TaskHosts.
- Hash-projektidentifierare för
Sammanställda alternativ
Vissa kommandon skickar extra 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.
Från och med .NET Core 2.1.100 SDK hashar SDK alla dessa värden förutom --verbosity och --sdk-package-version.
Telemetri för mallmotor
Från och med .NET Core 2.1.100 SDK samlar mallens dotnet new instansieringskommando in extra data för Microsoft-skapade mallar:
--framework--auth
dotnet run telemetry
Från och med .NET SDK 10.0.100 dotnet run samlar kommandot in funktionsbaserad telemetri för att bidra till utveckling och användning av filbaserade appar.
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 eller SDK kraschar samlar det in namnet på undantaget och stackspårningen av CLI- eller SDK-koden. .NET CLI samlar in den här informationen för att utvärdera problem och förbättra kvaliteten på .NET SDK och CLI.
.NET CLI samlar endast in information om CLI- eller SDK-undantag, inte undantag i ditt program. De insamlade data innehåller namnet på undantaget och stackspårningen. Den här stackspårningen är av CLI- eller 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)
.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 du inte placera anpassade versioner av .NET SDK i kataloger vars sökvägsnamn exponerar personlig eller känslig information.
Identifiering av kontinuerlig integration
För att identifiera om .NET CLI körs i en miljö för kontinuerlig integrering söker .NET CLI efter förekomst och värden för flera välkända miljövariabler som vanliga CI-providers anger.
I följande lista visas miljövariablerna och hur .NET CLI använder sina värden. .NET CLI samlar inte in värdet för någon miljövariabel. det använder bara värdet 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 |
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 |
BUILD_ID, PROJECT_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 söker .NET CLI efter 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 inte in– de 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 .NET CLI identifierar flera agenter sammanfogas de olika agentvärdena med ett kommatecken för att generera det slutliga värdet.