Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article s’applique à : ✔️ .NET 8 SDK et versions ultérieures
Ce tutoriel vous explique comment créer et empaqueter un outil .NET. L’interface CLI .NET vous permet de créer une application console en tant qu’outil, que d’autres peuvent installer et exécuter. Les outils .NET sont des packages NuGet installés à partir de l’interface CLI .NET. Pour plus d’informations sur les outils, consultez la vue d’ensemble des outils .NET.
L'outil que vous allez créer est une application console qui prend des informations sur l'environnement de .NET actuel et l'affiche, y compris la version .NET, les détails du système d'exploitation et les paramètres des variables d'environnement clés.
Ce tutoriel est le premier d’une série de trois didacticiels. Dans ce tutoriel, vous allez créer et empaqueter un outil. Dans les deux didacticiels suivants, vous utilisez l’outil comme outil global et utilisez l’outil comme outil local. Les procédures de création d’un outil sont identiques si vous l’utilisez en tant qu’outil global ou en tant qu’outil local.
Conditions préalables
.NET SDK 10.0 ou une version ultérieure.
Ce tutoriel utilise .NET SDK 10.0, mais ce guide s’applique à .NET 8.0 et versions ultérieures.
Un éditeur de texte ou un éditeur de code de votre choix.
Création d’un projet
Ouvrez une invite de commandes et créez un dossier nommé dépôt.
Accédez au dossier du référentiel et entrez la commande suivante :
dotnet new console -n dotnet-envLa commande crée un dossier nommé dotnet-env sous le dossier du dépôt .
Accédez au dossier dotnet-env .
cd dotnet-env
Ajouter le code
Ouvrez le fichier Program.cs avec votre éditeur de code.
Remplacez le contenu par le code suivant :
using System.Reflection; using System.Runtime.InteropServices; var versionString = Assembly.GetEntryAssembly()? .GetCustomAttribute<AssemblyInformationalVersionAttribute>()? .InformationalVersion .ToString(); Console.WriteLine($"dotnet-env v{versionString}"); Console.WriteLine(new string('-', 40)); Console.WriteLine(); Console.WriteLine("Runtime"); Console.WriteLine($" .NET Version {Environment.Version}"); Console.WriteLine($" Framework {RuntimeInformation.FrameworkDescription}"); Console.WriteLine($" Runtime Identifier {RuntimeInformation.RuntimeIdentifier}"); Console.WriteLine(); Console.WriteLine("System"); Console.WriteLine($" OS {RuntimeInformation.OSDescription}"); Console.WriteLine($" Architecture {RuntimeInformation.OSArchitecture}"); Console.WriteLine($" Machine Name {Environment.MachineName}"); Console.WriteLine($" Processor Count {Environment.ProcessorCount}"); Console.WriteLine(); Console.WriteLine("Environment Variables"); string[] envVars = { "DOTNET_ROOT", "DOTNET_HOST_PATH", "DOTNET_CLI_HOME", "DOTNET_NOLOGO", "NUGET_PACKAGES", "DOTNET_ENVIRONMENT" }; foreach (string name in envVars) { string? value = Environment.GetEnvironmentVariable(name); Console.WriteLine($" {name,-24}{value ?? "(not set)"}"); }Le programme utilise des instructions de niveau supérieur pour lire la version d’information de l’assembly à l’aide de
Assembly.GetEntryAssembly()etAssemblyInformationalVersionAttribute, puis imprime le nom de l’application et une ligne de séparation visuelle avant d’afficher trois sections d'information.-
Runtime : la version .NET, la description du framework et l’identificateur d’exécution, à l’aide de
Environment.VersionetRuntimeInformation. - Système : description du système d’exploitation, architecture, nom de l’ordinateur et nombre de processeurs.
- variables Environment — six variables clés liées aux .NET (
DOTNET_ROOT,DOTNET_HOST_PATH,DOTNET_CLI_HOME,DOTNET_NOLOGO,NUGET_PACKAGESetDOTNET_ENVIRONMENT), affichant(not set)pour les autres qui ne sont pas configurés.
La
using System.Reflectiondirective est requise pourAssembly.GetEntryAssembly()etAssemblyInformationalVersionAttribute. Lausing System.Runtime.InteropServicesdirective est requise pourRuntimeInformation.-
Runtime : la version .NET, la description du framework et l’identificateur d’exécution, à l’aide de
Enregistrez vos modifications.
Tester l’application
Exécutez le projet et consultez la sortie :
dotnet run
La sortie ressemble à l’exemple suivant :
dotnet-env v1.0.0
----------------------------------------
Runtime
.NET Version 10.0.4
Framework .NET 10.0.4
Runtime Identifier win-x64
System
OS Microsoft Windows 10.0.22631
Architecture X64
Machine Name MY-MACHINE
Processor Count 16
Environment Variables
DOTNET_ROOT (not set)
DOTNET_HOST_PATH (not set)
DOTNET_CLI_HOME (not set)
DOTNET_NOLOGO (not set)
NUGET_PACKAGES (not set)
DOTNET_ENVIRONMENT (not set)
Remarque
Les valeurs affichées dépendent de votre ordinateur et de l’installation .NET. La sortie varie selon la plateforme.
Empaqueter l’outil
Pour empaquetez et distribuez l’application en tant qu’outil, modifiez le fichier projet.
Ouvrez le fichier dotnet-env.csproj et ajoutez trois nouveaux nœuds XML à la fin du
<PropertyGroup>nœud :<PackAsTool>true</PackAsTool> <ToolCommandName>dotnet-env</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath><ToolCommandName>est un élément facultatif qui spécifie la commande qui appelle l’outil après l’installation. Si cet élément n’est pas fourni, le nom de commande de l’outil est le nom de l’assembly, qui est généralement le nom du fichier projet sans l’extension .csproj .Remarque
Choisissez une valeur unique pour
<ToolCommandName>. Évitez d’utiliser des extensions de fichier (comme.exeou.cmd) car l’outil est installé en tant qu’hôte d’application et que la commande ne doit pas inclure d’extension. Cela permet d’éviter les conflits avec les commandes existantes et garantit une expérience d’installation fluide.<PackageOutputPath>est un élément facultatif qui détermine où .NET produit le package NuGet. L’interface CLI .NET utilise le package NuGet pour installer votre outil.Le fichier projet ressemble maintenant à l’exemple suivant :
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <PackAsTool>true</PackAsTool> <ToolCommandName>dotnet-env</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath> </PropertyGroup> </Project>Créez un package NuGet en exécutant la commande dotnet pack :
dotnet packLe fichier dotnet-env.1.0.0.nupkg est créé dans le dossier identifié par la
<PackageOutputPath>valeur du fichier dotnet-env.csproj , qui dans cet exemple est le dossier ./nupkg .Pour libérer publiquement un outil, chargez-le sur
https://www.nuget.org. Une fois l’outil disponible sur NuGet, les développeurs peuvent installer l’outil à l’aide de la commande dotnet tool install . Pour ce tutoriel, vous installez le package directement à partir du dossier nupkg local. Vous n’avez donc pas besoin de charger le package sur NuGet.
Résolution des problèmes
Si vous recevez un message d’erreur en suivant le didacticiel, consultez Résoudre les problèmes d’utilisation des outils .NET.
Étapes suivantes
Dans ce tutoriel, vous avez créé une application console et l’avez empaquetée en tant qu’outil. Pour savoir comment utiliser l’outil en tant qu’outil global, passez au didacticiel suivant.
Si vous préférez, vous pouvez ignorer le didacticiel des outils globaux et accéder directement au didacticiel sur les outils locaux.