.NET SDK- en .NET CLI-telemetrie
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. Sommige verzamelde gegevens worden gepubliceerd op .NET CLI-telemetriegegevens.
Bereik
dotnet
heeft twee functies: om apps uit te voeren en CLI-opdrachten uit te voeren. Telemetrie wordt niet verzameld wanneer u dotnet
een toepassing in de volgende indeling start:
dotnet [path-to-app].dll
Telemetrie wordt verzameld wanneer u een van de .NET CLI-opdrachten gebruikt, zoals:
dotnet build
dotnet pack
dotnet run
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 DOTNET_CLI_TELEMETRY_OPTOUT
omgevingsvariabele in 1
op of true
.
Er wordt ook één telemetrie-vermelding verzonden door het .NET SDK-installatieprogramma wanneer er een geslaagde installatie plaatsvindt. Als u zich wilt afmelden, stelt u de DOTNET_CLI_TELEMETRY_OPTOUT
omgevingsvariabele 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 het volgende 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 'eerste run'-ervaring 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 DOTNET_NOLOGO
omgevingsvariabele in op true
. Houd er rekening mee dat deze variabele geen effect heeft op het afmelden voor telemetrie.
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 wordt niet geëxtraheerd van gegevensbestanden die worden geopend of gemaakt door uw apps, dumps van geheugen dat wordt bezet door de objecten van uw apps of de inhoud van het klembord. De gegevens worden veilig verzonden naar Microsoft-servers met behulp van Azure Monitor-technologie , die worden bewaard onder beperkte toegang en gepubliceerd onder strikte beveiligingscontroles van beveiligde Azure Storage-systemen .
Het beschermen van uw privacy is belangrijk voor ons. Als u vermoedt dat de telemetrie gevoelige gegevens verzamelt of dat de gegevens onveilig of ongepast worden verwerkt, dient u een probleem in de dotnet/sdk-opslagplaats in of verzendt u een e-mailbericht naar dotnet@microsoft.com voor onderzoek.
De telemetriefunctie verzamelt de volgende gegevens:
SDK-versies | Gegevens |
---|---|
Alle | Tijdstempel van aanroep. |
Alle | Opdracht aangeroepen (bijvoorbeeld 'build'), gehasht vanaf 2.1. |
Alle | Drie octet-IP-adres dat wordt gebruikt om de geografische locatie te bepalen. |
Alle | Besturingssysteem en versie. |
Alle | Runtime-id (RID) waarop de SDK wordt uitgevoerd. |
Alle | .NET SDK-versie. |
Alle | Telemetrieprofiel: een optionele waarde die alleen wordt gebruikt met expliciete aanmelding door gebruikers en intern wordt gebruikt bij Microsoft. |
>=2,0 | Opdrachtargumenten en -opties: verschillende argumenten en opties worden verzameld (geen willekeurige tekenreeksen). Bekijk verzamelde opties. Gehasht na 2.1.300. |
>=2,0 | Of de SDK wordt uitgevoerd in een container. |
>=2,0 | Doelframeworks (van de TargetFramework gebeurtenis), gehasht vanaf 2.1. |
>=2,0 | Mac-adres (Hashed Media Access Control) (SHA256). |
>=2,0 | Huidige werkmap gehasht. |
>=2,0 | Installeer het succesrapport, met de bestandsnaam van de hash-installatie-exe. |
>=2.1.300 | Kernelversie. |
>=2.1.300 | Libc release/versie. |
>=3,0,100 | Of de uitvoer is omgeleid (waar of onwaar). |
>=3,0,100 | Bij een CLI/SDK-crash worden het uitzonderingstype en de bijbehorende stack-tracering (alleen CLI/SDK-code is opgenomen in de stacktracering die is verzonden). Zie Telemetrie van crashuitzondering voor meer informatie. |
>=5,0,100 | Hashed TargetFrameworkVersion gebruikt voor build (MSBuild-eigenschap) |
>=5,0,100 | Hashed RuntimeIdentifier gebruikt voor build (MSBuild-eigenschap) |
>=5,0,100 | Hashed SelfContained gebruikt voor build (MSBuild-eigenschap) |
>=5,0,100 | Hashed UseApphost gebruikt voor build (MSBuild-eigenschap) |
>=5,0,100 | Hashed OutputType gebruikt voor build (MSBuild-eigenschap) |
>=5,0.201 | Hashed PublishReadyToRun gebruikt voor build (MSBuild-eigenschap) |
>=5,0.201 | Hashed PublishTrimmed gebruikt voor build (MSBuild-eigenschap) |
>=5,0.201 | Hashed PublishSingleFile gebruikt voor build (MSBuild-eigenschap) |
>=5,0,202 | Verstreken tijd vanaf het begin van het proces tot het invoeren van de hoofdmethode van het CLI-programma, het meten van de host en runtime opstarten. |
>=5,0,202 | Verstreken tijd voor de stap die .NET Tools toevoegt aan het pad tijdens de eerste uitvoering. |
>=5,0,202 | Verstreken tijd om de eerste keer gebruiksmelding weer te geven bij de eerste uitvoering. |
>=5,0,202 | Verstreken tijd voor het genereren van ASP.NET Certificaat tijdens de eerste uitvoering. |
>=5,0,202 | Verstreken tijd om de CLI-invoer te parseren. |
>=6,0,100 | Architectuur van besturingssysteem |
>=6,0,104 | Hashed PublishReadyToRunUseCrossgen2 gebruikt voor build (MSBuild-eigenschap) |
>=6,0,104 | Hashed Crossgen2PackVersion gebruikt voor build (MSBuild property) |
>=6,0,104 | Hashed CompileListCount gebruikt voor build (MSBuild-eigenschap) |
>=6,0,104 | Gehashte _ReadyToRunCompilationFailures gebruikt voor build (MSBuild-eigenschap) |
>=6,0,300 | Als de CLI is aangeroepen vanuit een omgeving voor continue integratie. Zie Continue integratiedetectie voor meer informatie. |
>=7,0,100 | Hashed PublishAot gebruikt voor build (MSBuild-eigenschap) |
>=7,0,100 | Hashed PublishProtocol gebruikt voor build (MSBuild-eigenschap) |
>=8,0,100 | Hashed TargetPlatformIdentifier gebruikt voor build (MSBuild-eigenschap) |
>=8,0,100 | Hashed HybridGlobalization gebruikt voor build (MSBuild-eigenschap) |
>=8,0,100 | Of .NET Blazor WebAssembly SDK wordt gebruikt. |
>=8,0,100 | Of .NET WebAssembly SDK wordt gebruikt. |
>=8,0,100 | Of .NET MAUI wordt gebruikt. |
>=8,0,100 | Of .NET Mobile SDK wordt gebruikt. |
>=8,0,100 | Hiermee wordt aangegeven of andere mobiele SDK's worden gebruikt (zoals: Resourceia, Uno). |
>=8,0,100 | Of Mono AOT wordt gebruikt. |
>=8,0,100 | Of mono AOT strip IL-functie wordt gebruikt. |
>=8,0,100 | Of mono-interpreter wordt gebruikt. |
>=8,0,100 | Of de bibliotheekmodus voor mobiel wordt gebruikt. |
>=8,0,100 | Of NativeAOT wordt gebruikt. |
>=8,0,100 | Gebruikte versie van monoruntimepack. |
Verzamelde opties
Bepaalde opdrachten verzenden extra gegevens. Een subset van opdrachten verzendt het eerste argument:
Opdracht | Eerste argumentgegevens verzonden |
---|---|
dotnet help <arg> |
Er wordt een query uitgevoerd op de help van de opdracht. |
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 , list of remove . |
dotnet nuget <arg> |
Het woord delete , locals of push . |
dotnet workload <subcommand> <arg> |
Het woord install , update , list , , search , , uninstall , en repair restore de naam van de workload (gehasht). |
dotnet tool <subcommand> <arg> |
Het woord install , update , list , , search , en uninstall run de naam van het hulpprogramma dotnet (gehasht). |
Met een subset van opdrachten worden geselecteerde opties verzonden als ze worden gebruikt, samen met de waarden:
Optie | Opdracht |
---|---|
--verbosity |
Alle opdrachten |
--language |
dotnet new |
--configuration |
dotnet build dotnet publish , dotnet clean , 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
Behalve en --sdk-package-version
worden alle andere waarden gehasht vanaf .NET Core 2.1.100 SDK.
Telemetrie van sjabloonengine
Met de dotnet new
opdracht sjabloon instantiëring worden aanvullende gegevens verzameld voor door Microsoft geschreven sjablonen, te beginnen met .NET Core 2.1.100 SDK:
--framework
--auth
Telemetrie van crashuitzondering
Als de .NET CLI/SDK vastloopt, verzamelt deze de naam van de uitzondering en stacktracering van de CLI/SDK-code. Deze informatie wordt verzameld om problemen te beoordelen en de kwaliteit van de .NET SDK en CLI te verbeteren. Dit artikel bevat informatie over de gegevens die we verzamelen. Het biedt ook tips over hoe gebruikers hun eigen versie van de .NET SDK bouwen, onbedoelde openbaarmaking van persoonlijke of gevoelige informatie kunnen voorkomen.
De .NET CLI verzamelt alleen informatie voor CLI/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/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)
Detectie van continue integratie
Om te detecteren of de .NET CLI wordt uitgevoerd in een omgeving voor continue integratie, test de .NET CLI op de aanwezigheid en waarden van verschillende bekende omgevingsvariabelen die door algemene CI-providers zijn ingesteld.
Hieronder ziet u de volledige lijst met omgevingsvariabelen en wat er met hun waarden gebeurt. In elk geval wordt de waarde van de omgevingsvariabele nooit verzameld, alleen gebruikt om een booleaanse vlag in te stellen.
Variabele(en) | Provider | Actie |
---|---|---|
TF_BUILD | Azure-pipelines | Booleaanse waarde parseren |
GITHUB_ACTIONS | GitHub Actions | 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 |
Onbedoelde openbaarmaking van informatie voorkomen
.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 mogen aangepaste builds van de .NET SDK zich niet in mappen bevinden waarvan padnamen persoonlijke of gevoelige informatie beschikbaar maken.