Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De .NET SDK- bevat een telemetriefunctie waarmee gebruiksgegevens worden verzameld en naar Microsoft worden verzonden wanneer u .NET CLI opdrachten gebruikt. De gebruiksgegevens bevatten uitzonderingsgegevens wanneer de .NET CLI vastloopt. De .NET CLI wordt geleverd met de .NET SDK en is de set werkwoorden waarmee u uw .NET-apps kunt bouwen, testen en publiceren. Met telemetriegegevens kan het .NET-team begrijpen hoe de hulpprogramma's worden gebruikt, zodat ze kunnen worden verbeterd. Informatie over fouten helpt het team bij het oplossen van problemen en het oplossen van fouten.
De verzamelde gegevens worden samengevoegd onder de Creative Commons Attribution License. Een deel van de verzamelde gegevens wordt gepubliceerd bij .NET CLI-telemetriegegevens.
Draagwijdte
dotnet heeft twee functies: om apps uit te voeren en CLI-opdrachten uit te voeren. Telemetrie wordt niet verzameld wanneer u dotnet gebruikt om een toepassing in het volgende formaat te starten:
dotnet [path-to-app].dll
Telemetrie wordt verzameld bij het gebruik van een van de .NET CLI-opdrachten, zoals:
dotnet builddotnet packdotnet run
Hoe u zich kunt afmelden
De .NET SDK-telemetriefunctie is standaard ingeschakeld voor Microsoft-distributies van de SDK. Als u zich wilt afmelden voor de telemetriefunctie, stelt u de omgevingsvariabele DOTNET_CLI_TELEMETRY_OPTOUT in op 1 of true.
Het .NET SDK-installatieprogramma verzendt één telemetrievermelding wanneer een geslaagde installatie plaatsvindt. Als u zich wilt afmelden, stelt u de omgevingsvariabele DOTNET_CLI_TELEMETRY_OPTOUT in voordat u de .NET SDK installeert.
Belangrijk
Als u zich wilt afmelden nadat u het installatieprogramma hebt gestart: sluit het installatieprogramma, stelt u de omgevingsvariabele in en voert u het installatieprogramma opnieuw uit met die waardeset.
Openbaarmaking
De .NET SDK geeft tekst weer die vergelijkbaar is met de volgende uitvoer wanneer u voor het eerst een van de .NET CLI-opdrachten uitvoert (bijvoorbeeld dotnet build). De tekst kan enigszins variëren, afhankelijk van de versie van de SDK die u uitvoert. Deze ervaring bij de eerste keer is hoe Microsoft u op de hoogte stelt van gegevensverzameling.
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
Als u dit bericht en het .NET-welkomstbericht wilt uitschakelen, stelt u de omgevingsvariabele DOTNET_NOLOGO in op true. Deze variabele heeft geen effect op het afmelden voor telemetrie.
Opmerking
Incompatibele wijziging: Het gedrag van telemetrieberichten die zijn geschreven naar stderr is veranderd in recente versies van de .NET SDK. Zie dotnet CLI-opdrachten loggen gegevens die niet relevant zijn voor de opdracht naar stderr voor meer informatie.
Gegevenspunten
De telemetriefunctie verzamelt geen persoonlijke gegevens, zoals gebruikersnamen of e-mailadressen. Uw code wordt niet gescand en er worden geen gegevens op projectniveau geëxtraheerd, zoals naam, opslagplaats of auteur. De inhoud van eventuele gegevensbestanden die worden geopend of gemaakt door uw apps, geheugen-dumps van objecten die worden bezet door uw apps, of de inhoud van het klembord, wordt niet geëxtraheerd. De gegevens worden veilig naar Microsoft-servers verzonden met behulp van Azure Monitor-technologie . De gegevens worden bewaard onder beperkte toegang en gepubliceerd onder strikte beveiligingscontroles van beveiligde Azure Storage-systemen .
Het beschermen van uw privacy is belangrijk voor Microsoft. Als u vermoedt dat de telemetrie gevoelige gegevens verzamelt of dat de gegevens onveilig of onjuist worden verwerkt, kunt u een probleem indienen in de dotnet/sdk-opslagplaats .
Zie de Privacyverklaring van Microsoft voor meer informatie over uw verzamelde privacy en persoonlijke gegevens.
Op de volgende tabbladen worden de telemetriegegevens weergegeven die zijn vastgelegd met de SDK-versie:
-
SDK-versie 10.0.100 en hoger:
- Gehashte project-id voor
dotnet run. - Toepassingstype van op bestanden gebaseerde app of op projectbasis voor
dotnet run. - De naam van het startprofiel als deze is opgegeven voor
dotnet run. - Of er een startprofiel is opgegeven voor
dotnet run. - Het configuratiemodel voor startinstellingen dat wordt gebruikt (indien aanwezig) voor
dotnet run. - Het aantal SDK's dat wordt gebruikt voor
dotnet run. - Aantal pakketverwijzingen voor
dotnet run. - Aantal projectverwijzingen voor
dotnet run. - Aantal extra eigenschappen voor op bestanden gebaseerde apps met
dotnet run. - Of MSBuild is gebruikt voor op bestanden gebaseerde apps met
dotnet run. - Of Roslyn-compiler is gebruikt voor op bestanden gebaseerde apps met
dotnet run. - De naam van de gedetecteerde LLM-agent, indien de CLI is aangeroepen vanuit een LLM-agent. Zie LLM-detectie voor meer informatie.
- Legt de
global.jsonstatus vast op het moment dat een opdracht wordt aangeroepen. De status is een van de volgende waarden: not_found, geldig, invalid_json of invalid_data. - Welke MSBuild-taakfabrieken worden gebruikt om taken te laden en uit te voeren (inclusief inline C#-taken, multithreaded-compatibele taken en out-of-process-taken), en hoeveel taken ze verwerken.
- Aantal MSBuild-taken dat wordt uitgevoerd in TaskHosts versus taken die niet in TaskHosts worden uitgevoerd.
- Gehashte project-id voor
Verzamelde opties
Bepaalde opdrachten verzenden extra gegevens. Een subset van opdrachten verzendt het eerste argument:
| Bevelen | Eerste argumentgegevens verzonden |
|---|---|
dotnet help <arg> |
Er wordt hulp aangevraagd voor het commando. |
dotnet new <arg> |
De sjabloonnaam (gehasht). |
dotnet add <arg> |
Het woord package of reference. |
dotnet remove <arg> |
Het woord package of reference. |
dotnet list <arg> |
Het woord package of reference. |
dotnet sln <arg> |
Het woord add, listof remove. |
dotnet nuget <arg> |
Het woord delete, localsof push. |
dotnet workload <subcommand> <arg> |
Het woord install, update, list, search, uninstall, repair, restore en de naam van de werkbelasting (gehasht). |
dotnet tool <subcommand> <arg> |
Het woord install, update, list, search, uninstall, run en de naam van de .NET-tool (gehasht). |
Met een subset van opdrachten worden geselecteerde opties verzonden als ze worden gebruikt, samen met de waarden:
| Optie | Opdrachten |
|---|---|
--verbosity |
Alle opdrachten |
--language |
dotnet new |
--configuration |
dotnet build
dotnet clean, dotnet publish, dotnet rundotnet test |
--framework |
dotnet build, , dotnet cleandotnet publish, dotnet run, , , dotnet testdotnet vstest |
--runtime |
dotnet build, dotnet publish |
--platform |
dotnet vstest |
--logger |
dotnet vstest |
--sdk-package-version |
dotnet migrate |
Wanneer de SDK een ingebouwde opdracht niet kan oplossen, verzendt een opdrachtomzetting die de opdracht heeft omgezet een hash van de opdrachtnaam samen met de naam van het opdrachtomzettingstype.
Vanaf .NET Core 2.1.100 SDK worden alle waarden door de SDK gehasht, behalve --verbosity en --sdk-package-version.
Telemetrie van sjabloonverwerkingsmotor
Vanaf .NET Core 2.1.100 SDK verzamelt de dotnet new opdracht sjabloon instantiëring extra gegevens voor door Microsoft geschreven sjablonen:
--framework--auth
dotnet-telemetrie uitvoeren
Vanaf .NET SDK 10.0.100 verzamelt de dotnet run opdracht telemetrie op basis van functies om de ontwikkeling en het gebruik van op bestanden gebaseerde apps te stimuleren.
Telemetrie voor alle dotnet run uitvoeringen:
- Toepassingstype (op bestand of project gebaseerd)
- Gehashte project- of bestands-id
- Aantal gebruikte SDK's
- Aantal PackageReferences
- Aantal Projectreferenties
- Het gebruik van het profiel starten (of
--launch-profileof--no-launch-profilewas gebruikt) - Of het startprofiel een standaardprofiel is
- Startinstellingenmodel toegepast, indien van toepassing
Telemetrie voor alleen op bestanden gebaseerde apps:
- Aantal extra eigenschappen (bijvoorbeeld
#:propertyinstructies) - Of MSBuild is gebruikt voor het bouwen
- Of de Roslyn-compiler rechtstreeks is gebruikt
Telemetrie van crashuitzondering
Als de .NET CLI of SDK vastloopt, wordt de naam van de uitzondering en stacktracering van de CLI of SDK-code verzameld. De .NET CLI verzamelt deze informatie om problemen te beoordelen en de kwaliteit van de .NET SDK en CLI te verbeteren.
De .NET CLI verzamelt alleen informatie voor CLI- of SDK-uitzonderingen, niet uitzonderingen in uw toepassing. De verzamelde gegevens bevatten de naam van de uitzondering en de stack-trace. Deze stacktracering is van CLI- of SDK-code.
In het volgende voorbeeld ziet u het soort gegevens dat wordt verzameld:
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-inzenders en iedereen die een versie van de .NET SDK uitvoert die ze zelf hebben gebouwd, moet rekening houden met het pad naar de SDK-broncode. Als er een crash optreedt tijdens het gebruik van een .NET SDK die een aangepaste build voor foutopsporing is of is geconfigureerd met aangepaste build-symboolbestanden, wordt het pad naar het SDK-bronbestand van de buildcomputer verzameld als onderdeel van de stacktracering en wordt deze niet gehasht.
Daarom moet u geen aangepaste builds van de .NET SDK plaatsen in mappen waarvan de padnamen persoonlijke of gevoelige informatie beschikbaar maken.
Continue integratiedetectie
Om te detecteren of de .NET CLI wordt uitgevoerd in een omgeving voor continue integratie, controleert de .NET CLI op de aanwezigheid en waarden van verschillende bekende omgevingsvariabelen die door algemene CI-providers zijn ingesteld.
In de volgende lijst ziet u de omgevingsvariabelen en hoe de .NET CLI hun waarden gebruikt. De .NET CLI verzamelt de waarde van een omgevingsvariabele niet; de waarde wordt alleen gebruikt om een Booleaanse vlag in te stellen.
| Variabele(en) | Aanbieder | Actie |
|---|---|---|
TF_BUILD |
Azure-pipelines | Booleaanse waarde parseren |
GITHUB_ACTIONS |
GitHub Actions (GitHub-acties) | Booleaanse waarde parseren |
APPVEYOR |
Appveyor | Booleaanse waarde parseren |
CI |
Veel/meest | Booleaanse waarde parseren |
TRAVIS |
Travis CI | Booleaanse waarde parseren |
CIRCLECI |
Cirkel-CI | Booleaanse waarde parseren |
CODEBUILD_BUILD_ID, AWS_REGION |
Amazon Web Services CodeBuild | Controleren of alle aanwezig en niet null zijn |
BUILD_ID, BUILD_URL |
Jenkins | Controleren of alle aanwezig en niet null zijn |
BUILD_ID, PROJECT_ID |
Google Cloud Build | Controleren of alle aanwezig en niet null zijn |
TEAMCITY_VERSION |
TeamCity | Controleren of aanwezig en niet null zijn |
JB_SPACE_API_URL |
JetBrains Space | Controleren of aanwezig en niet null zijn |
LLM-detectie
Om te detecteren of de .NET CLI wordt uitgevoerd in de context van een LLM-agent, controleert de .NET CLI op de aanwezigheid en waarden van verschillende omgevingsvariabelen die LLM-agents en AI-coderingsassistenten hebben ingesteld.
In de volgende tabel ziet u de agentnaam, de omgevingsvariabele die wordt gebruikt voor detectie en de waarde van het agenttype dat wordt gerapporteerd. De werkelijke waarden van deze omgevingsvariabelen worden niet verzameld. Ze worden alleen gebruikt om het agenttype te identificeren.
| LLM-agent | Variable | Waarde |
|---|---|---|
| GitHub Copilot | GITHUB_COPILOT_CLI_MODE |
kopilot |
| Claude Code | CLAUDECODE |
claude |
| Cursor | CURSOR_EDITOR |
cursor |
| Google Gemini | GEMINI_CLI |
"gemini" |
Als de .NET CLI meerdere agents detecteert, worden de verschillende agentwaarden samengevoegd met een komma om de uiteindelijke waarde te produceren.