NET Core CLI Tool Document (II). NET Core Tool Telemetry (Application Information Collection)


Note: This article is a personal translation of articles, due to limited personal level, there are some wrong places for you to help correct.
Original:.NET Core Tools Telemetry
NET Core Tool Telemetry (Application Information Collection)

The. NET Core tool includes telemetry functions for collecting and using information. It is important for the. NET team to understand how to use tools so that they can be promoted.

The data collected is anonymous and will be published in a summary form for use by Microsoft and community engineers under the Knowledge Sharing Signature License Agreement.

Scope of application

dotnetCommands are used to start applications and. NET Core tools.dotnetCommand it itself not to collect telemetry data. It isdotnetThe command collects telemetry data by running the. NET Core tool.

NET Core command (telemetry is not enabled):

  • dotnet

  • dotnet [path-to-app]

NET Core tool commands (telemetry enabled), such as:

  • dotnet build

  • dotnet pack

  • dotnet restore

  • dotnet run


By default, the. NET Core tool telemetry function is enabled. You can opt out of remote sensing by setting an environment variable DOTNET_CLI_TELEMETRY_OPTOUT (for example, on macOS/Linux)exportOn Windowsset) For true (e.g. “true”, 1).

data point

This function collects the following parts of data:

  • Commands in use (such as “build”, “restore”)

  • Command Exit Code

  • For test projects, the tester in use

  • Call timestamp

  • Framework used

  • Is the runtime IDs consistent with the current “runtimes” node

  • CLI version currently in use

This feature does not collect any personal data, such as usernames or e-mails. It does not scan your code, extract any project-level data that can be considered sensitive statements, such as name, warehouse address, or author (if you set these in your project. json). We want to know how tools are used, not what you generate with them. If you find sensitive data being collected, this is a mistake. Please submit an issue, which will be fixed.

license agreement

Microsoft. NET Core’s license is MICROSOFT. NET LIBRARY EULA. In order to start remote sensing, this includes the “DATA” part which is re-exported below.

NET NuGet packages use the same license, but remote sensing is not turned on (refer to the scope of application above).

2.      DATA.  The software may collect information about you and your use of
the software, and send that to Microsoft. Microsoft may use this information
to improve our products and services. You can learn more about data collection
and use in the help documentation and the privacy statement at . Your use of the software
operates as your consent to these practices.


When you first run a command (for example:dotnet restore) The. NET Core tool displays the following text. This “first run” experience is how Microsoft informs you about data collection. In the same way, initially fill your NuGet cache in the. NET Core SDK to avoid requesting these libraries from NuGet. ORG (or other NuGet sources).

Welcome to .NET Core!

Learn more about .NET Core @ Use dotnet --help to
see available commands or go to


The .NET Core tools collect usage data in order to improve your experience.
The data is anonymous and does not include commandline arguments. The data is
collected by Microsoft and shared with the community.

You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT
environment variable to 1 using your favorite shell.

You can read more about .NET Core tools telemetry @


A command is running to initially populate your local package cache, to
improve restore speed and enable offline access. This command will take up to
a minute to complete and will only happen once. 

Recommended Today

Comparison and analysis of Py = > redis and python operation redis syntax

preface R: For redis cli P: Redis for Python get ready pip install redis pool = redis.ConnectionPool(host=’′, port=6379, db=1) redis = redis.Redis(connection_pool=pool) Redis. All commands I have omitted all the following commands. If there are conflicts with Python built-in functions, I will add redis Global command Dbsize (number of returned keys) R: dbsize P: print(redis.dbsize()) […]