.NET SDK-Telemetrie.NET SDK telemetry

Das .NET SDK umfasst ein Telemetriefeature, das Daten zur Nutzung und zu Ausnahmen erfasst, wenn die .NET-CLI abstürzt.The .NET SDK includes a telemetry feature that collects usage data and exception information when the .NET CLI crashes. Die .NET-CLI umfasst das .NET SDK und besteht aus mehreren Verben, die es Ihnen ermöglichen, Ihre .NET-Apps zu erstellen, zu testen und zu veröffentlichen.The .NET CLI comes with the .NET SDK and is the set of verbs that enable you to build, test, and publish your .NET apps. Es ist wichtig, dass das .NET-Team versteht, wie die Tools verwendet werden, damit diese verbessert werden können.It's important that the .NET team understands how the tools are used so they can be improved. Informationen zu Fehlern helfen dem Team, Probleme und Fehler zu beheben.Information on failures helps the team resolve problems and fix bugs.

Die erfassten Daten werden unter der Creative Commons Attribution-Lizenz in aggregierter Form veröffentlicht.The collected data is published in aggregate under the Creative Commons Attribution License.

BereichScope

dotnet hat zwei Funktionen: das Ausführen von Apps und das Ausführen von CLI-Befehlen.dotnet has two functions: to run apps, and to execute CLI commands. Es werden keine Telemetriedaten erfasst, wenn dotnet zum Starten einer Anwendung im folgenden Format verwendet wird:Telemetry isn't collected when using dotnet to start an application in the following format:

  • dotnet [path-to-app].dll

Es werden Telemetriedaten erfasst, wenn einer der .NET-CLI-Befehle verwendet wird, zum Beispiel:Telemetry is collected when using any of the .NET CLI commands, such as:

  • dotnet build
  • dotnet pack
  • dotnet run

Deaktivierung der TelemetriefunktionHow to opt out

Das Telemetriefeature des .NET SDK ist standardmäßig aktiviert.The .NET SDK telemetry feature is enabled by default. Sie können das Telemetriefeature deaktivieren, indem Sie die Umgebungsvariable DOTNET_CLI_TELEMETRY_OPTOUT auf 1 oder true festlegen.To opt out of the telemetry feature, set the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 or true.

Außerdem wird ein einzelner Telemetrieeintrag vom .NET SDK-Installationsprogramm gesendet, wenn eine Installation erfolgreich ist.A single telemetry entry is also sent by the .NET SDK installer when a successful installation happens. Sie können zur Deaktivierung die Umgebungsvariable DOTNET_CLI_TELEMETRY_OPTOUT festlegen, bevor Sie das .NET SDK installieren.To opt out, set the DOTNET_CLI_TELEMETRY_OPTOUT environment variable before you install the .NET SDK.

OffenlegungDisclosure

Das .NET SDK zeigt beim ersten Ausführen eines der .NET-CLI-Befehle (z. B. dotnet build) den folgenden Text an.The .NET SDK displays text similar to the following when you first run one of the .NET CLI commands (for example, dotnet build). Der Text kann abhängig von der von Ihnen ausgeführten Version des SDK leicht variieren.Text may vary slightly depending on the version of the SDK you're running. Über diese erste Ausführung benachrichtigt Microsoft Sie über die Datensammlung.This "first run" experience is how Microsoft notifies you about data collection.

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

Legen Sie die Umgebungsvariable DOTNET_NOLOGO auf true fest, um diese Meldung und die .NET-Willkommensmeldung zu deaktivieren.To disable this message and the .NET welcome message, set the DOTNET_NOLOGO environment variable to true. Beachten Sie, dass mit dieser Variable nicht die Übertragung von Telemetriedaten deaktiviert wird.Note that this variable has no effect on telemetry opt out.

DatenpunkteData points

Das Telemetriefeature erfasst keine personenbezogenen Daten wie Benutzernamen oder E-Mail-Adressen.The telemetry feature doesn't collect personal data, such as usernames or email addresses. Es überprüft Ihren Code nicht und extrahiert keine vertraulichen Daten auf Projektebene wie den Namen, das Repository oder den Autor.It doesn't scan your code and doesn't extract project-level data, such as name, repository, or author. Die Daten werden mithilfe von Azure Monitor sicher an die Microsoft-Server gesendet, unter eingeschränktem Zugriff gespeichert und unter strikter Sicherheitskontrolle durch die Systeme von Azure Storage veröffentlicht.The data is sent securely to Microsoft servers using Azure Monitor technology, held under restricted access, and published under strict security controls from secure Azure Storage systems.

Der Schutz Ihrer Privatsphäre ist uns wichtig.Protecting your privacy is important to us. Wenn Sie vermuten, dass durch die Telemetrie vertrauliche Daten erfasst oder die Daten nicht sicher oder ordnungsgemäß verarbeitet werden, melden Sie ein Problem mit dem dotnet/sdk-Repository, oder senden Sie eine E-Mail an dotnet@microsoft.com, damit dies überprüft wird.If you suspect the telemetry is collecting sensitive data or the data is being insecurely or inappropriately handled, file an issue in the dotnet/sdk repository or send an email to dotnet@microsoft.com for investigation.

Das Telemetriefeature erfasst die folgenden Daten:The telemetry feature collects the following data:

SDK-VersionenSDK versions DatenData
AlleAll Den Zeitstempel des AufrufsTimestamp of invocation.
AlleAll Den aufgerufenen Befehl (zum Beispiel „build“), ab Version 2.1 gehashtCommand invoked (for example, "build"), hashed starting in 2.1.
AlleAll Die aus drei Oktetten bestehende IP-Adresse, die zur Bestimmung des geografischen Standorts verwendet wirdThree octet IP address used to determine the geographical location.
AlleAll Betriebssystem und VersionOperating system and version.
AlleAll Die Runtime-ID (RID), auf der das SDK ausgeführt wirdRuntime ID (RID) the SDK is running on.
AlleAll Version des .NET SDK.NET SDK version.
AlleAll Telemetrieprofil: ein optionaler Wert, der nur bei der expliziten Benutzeranmeldung und intern bei Microsoft verwendet wird.Telemetry profile: an optional value only used with explicit user opt-in and used internally at Microsoft.
Mindestens Version 2.0>=2.0 Befehlsargumente und -optionen: Es werden mehrere Argumente und Optionen erfasst (keine beliebigen Zeichenfolgen).Command arguments and options: several arguments and options are collected (not arbitrary strings). Weitere Informationen finden Sie unter Gesammelte Optionen.See collected options. Ab Version 2.1.300 gehashtHashed after 2.1.300.
Mindestens Version 2.0>=2.0 Ob das SDK in einem Container ausgeführt wird.Whether the SDK is running in a container.
Mindestens Version 2.0>=2.0 Zielframeworks (aus dem Ereignis TargetFramework), ab Version 2.1 gehashtTarget frameworks (from the TargetFramework event), hashed starting in 2.1.
Mindestens Version 2.0>=2.0 MAC-Adresse (Media Access Control) mit Hashwert (SHA256).Hashed Media Access Control (MAC) address (SHA256).
Mindestens Version 2.0>=2.0 Das derzeitige Arbeitsverzeichnis mit Hash.Hashed current working directory.
Mindestens Version 2.0>=2.0 Erfolgsbericht zur Installation mit gehashtem EXE-DateinamenInstall success report, with hashed installer exe filename.
Mindestens Version 2.1.300>=2.1.300 KernelversionKernel version.
Mindestens Version 2.1.300>=2.1.300 Libc-VersionLibc release/version.
Mindestens Version 3.0.100>=3.0.100 Gibt an, ob die Ausgabe umgeleitet wurde (TRUE oder FALSE)Whether the output was redirected (true or false).
Mindestens Version 3.0.100>=3.0.100 Bei einem CLI- bzw. SDK-Absturz der Ausnahmetyp und seine Stapelüberwachung (es ist nur CLI- bzw. SDK-Code in der gesendeten Stapelüberwachung enthalten)On a CLI/SDK crash, the exception type and its stack trace (only CLI/SDK code is included in the stack trace sent). Weitere Informationen finden Sie unter Gesammelte Telemetrie zu einer .NET-CLI- bzw. SDK-Ausnahme.For more information, see .NET CLI/SDK crash exception telemetry collected.

Gesammelte OptionenCollected options

Bestimmte Befehle senden zusätzliche Daten.Certain commands send additional data. Eine Teilmenge der Befehle sendet das erste Argument:A subset of commands sends the first argument:

BefehlCommand Erste Argumentdaten gesendetFirst argument data sent
dotnet help <arg> Die Hilfe für den Befehl wird abgefragt.The command help is being queried for.
dotnet new <arg> Der Name der Vorlage (gehasht)The template name (hashed).
dotnet add <arg> Die Wörter package oder referenceThe word package or reference.
dotnet remove <arg> Die Wörter package oder referenceThe word package or reference.
dotnet list <arg> Die Wörter package oder referenceThe word package or reference.
dotnet sln <arg> Die Wörter add, list oder removeThe word add, list, or remove.
dotnet nuget <arg> Die Wörter delete, locals oder pushThe word delete, locals, or push.

Eine Teilmenge der Befehle sendet die ausgewählten Optionen, wenn diese zusammen mit ihren Werten verwendet werden:A subset of commands sends selected options if they're used, along with their values:

OptionOption BefehleCommands
--verbosity Alle BefehleAll commands
--language dotnet new
--configuration dotnet build, dotnet clean, dotnet publish, dotnet run, dotnet testdotnet build, dotnet clean, dotnet publish, dotnet run, dotnet test
--framework dotnet build, dotnet clean, dotnet publish, dotnet run, dotnet test, dotnet vstestdotnet build, dotnet clean, dotnet publish, dotnet run, dotnet test, dotnet vstest
--runtime dotnet build, dotnet publishdotnet build, dotnet publish
--platform dotnet vstest
--logger dotnet vstest
--sdk-package-version dotnet migrate

Mit Ausnahme von --verbosity und --sdk-package-version werden alle anderen Werte ab dem .NET Core SDK, Version 2.1.100 gehasht.Except for --verbosity and --sdk-package-version, all the other values are hashed starting with .NET Core 2.1.100 SDK.

Gesammelte Telemetrie zu einer .NET-CLI- bzw. SDK-Ausnahme.NET CLI/SDK crash exception telemetry collected

Wenn die .NET-CLI bzw. das SDK abstürzt, sammelt es den Namen der Ausnahme und die Stapelüberwachung des CLI- bzw. SDK-Codes.If the .NET CLI/SDK crashes, it collects the name of the exception and stack trace of the CLI/SDK code. Diese Informationen werden gesammelt, um Probleme zu bewerten und die Qualität des .NET SDK und der .NET-CLI zu verbessern.This information is collected to assess problems and improve the quality of the .NET SDK and CLI. Dieser Artikel enthält Informationen zu den von uns erfassten Daten.This article provides information about the data we collect. Außerdem erhalten Sie Tipps dazu, wie Benutzer, die ihre eigene Version des .NET SDK erstellen, die unbeabsichtigte Offenlegung von personenbezogenen und vertraulichen Informationen vermeiden können.It also provides tips on how users building their own version of the .NET SDK can avoid inadvertent disclosure of personal or sensitive information.

Gesammelte DatentypenTypes of collected data

Die .NET-CLI erfasst nur Informationen zu CLI- bzw. SDK-Ausnahmen und nicht zu Ausnahmen in der Anwendung..NET CLI collects information for CLI/SDK exceptions only, not exceptions in your application. Die erfassten Daten enthalten den Namen der Ausnahme und die Stapelüberwachung.The collected data contains the name of the exception and the stack trace. Diese Stapelüberwachung besteht aus CLI- bzw. SDK-Code.This stack trace is of CLI/SDK code.

Im folgenden Beispiel sehen Sie, welche Art von Daten erfasst wird:The following example shows the kind of data that is collected:

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)

Vermeiden der unbeabsichtigten Offenlegung von InformationenAvoid inadvertent disclosure of information

.NET-Mitwirkende und jeder andere, der eine Version des .NET SDK ausführt, die selbst erstellt wurde, sollte den Pfad zum SDK-Quellcode berücksichtigen..NET contributors and anyone else running a version of the .NET SDK that they built themselves should consider the path to their SDK source code. Wenn ein Absturz bei der Verwendung eines .NET SDK auftritt, bei dem es sich um einen benutzerdefinierten Debugbuild handelt oder der mit benutzerdefinierten Buildsymboldateien konfiguriert ist, wird der Pfad der SDK-Quelldatei auf dem Buildcomputer als Teil der Stapelüberwachung zwar erfasst, aber nicht gehasht.If a crash occurs while using a .NET SDK that is a custom debug build or configured with custom build symbol files, the SDK source file path from the build machine is collected as part of the stack trace and isn't hashed.

Aus diesem Grund sollten benutzerdefinierte Builds des .NET SDK nicht in Verzeichnissen gespeichert werden, deren Pfadnamen persönliche oder vertrauliche Informationen offenlegen.Because of this, custom builds of the .NET SDK shouldn't be located in directories whose path names expose personal or sensitive information.

Siehe auchSee also