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.
Dit artikel is van toepassing op: ✔️ .NET 8 SDK en latere versies
In deze zelfstudie leert u hoe u een .NET-hulpprogramma maakt en verpakt. Met de .NET CLI kunt u een consoletoepassing maken als hulpprogramma, dat anderen kunnen installeren en uitvoeren. .NET-hulpprogramma's zijn NuGet-pakketten die zijn geïnstalleerd vanuit de .NET CLI. Zie het overzicht van .NET-hulpprogramma's voor meer informatie over hulpprogramma's.
Het hulpprogramma dat u maakt, is een consoletoepassing die informatie over de huidige .NET-omgeving gebruikt en deze weergeeft, inclusief de .NET versie, details van het besturingssysteem en de instellingen voor de belangrijkste omgevingsvariabele.
Deze zelfstudie is de eerste in een reeks van drie zelfstudies. In deze zelfstudie maakt en verpakt u een hulpprogramma. In de volgende twee zelfstudies gebruikt u het hulpprogramma als een algemeen hulpprogramma en gebruikt u het hulpprogramma als een lokaal hulpprogramma. De procedures voor het maken van een hulpprogramma zijn hetzelfde, ongeacht of u het gebruikt als een algemeen hulpprogramma of als een lokaal hulpprogramma.
Vereiste voorwaarden
.NET SDK 10.0 of een latere versie.
In deze zelfstudie wordt .NET SDK 10.0 gebruikt, maar deze handleiding is van toepassing op .NET 8.0 en hoger.
Een teksteditor of code-editor naar keuze.
Een project maken
Open een opdrachtprompt en maak een map met de naam opslagplaats.
Navigeer naar de repository map en voer de volgende opdracht in:
dotnet new console -n dotnet-envMet de opdracht maakt u een nieuwe map met de naam dotnet-env onder de map opslagplaats .
Navigeer naar de map dotnet-env.
cd dotnet-env
Code toevoegen
Open het Program.cs-bestand met de code-editor.
Vervang de inhoud door de volgende code:
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)"}"); }Het programma gebruikt instructies op het hoogste niveau om met
Assembly.GetEntryAssembly()enAssemblyInformationalVersionAttributede informatieve versie van de assembly te lezen, waarna de naam van de app en een scheidingslijn worden afgedrukt voordat er drie secties met informatie worden weergegeven.-
Runtime: de .NET versie, frameworkbeschrijving en runtime-id, met behulp van
Environment.VersionenRuntimeInformation. - Systeem : beschrijving van het besturingssysteem, architectuur, computernaam en processoraantal.
-
Omgevingsvariabelen : zes belangrijke variabelen .NET-gerelateerde variabelen (
DOTNET_ROOT,DOTNET_HOST_PATH,DOTNET_CLI_HOME,DOTNET_NOLOGO,NUGET_PACKAGESenDOTNET_ENVIRONMENT), met(not set)voor een die niet is geconfigureerd.
De
using System.Reflectionrichtlijn is vereist voorAssembly.GetEntryAssembly()enAssemblyInformationalVersionAttribute. Deusing System.Runtime.InteropServicesrichtlijn is vereist voorRuntimeInformation.-
Runtime: de .NET versie, frameworkbeschrijving en runtime-id, met behulp van
Sla uw wijzigingen op.
De toepassing testen
Voer het project uit en bekijk de uitvoer:
dotnet run
De uitvoer ziet er ongeveer als volgt uit:
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)
Opmerking
De weergegeven waarden zijn afhankelijk van uw computer en .NET installatie. De uitvoer verschilt per platform.
Het hulpprogramma verpakken
Als u de toepassing wilt inpakken en distribueren als hulpprogramma, wijzigt u het projectbestand.
Open het bestand dotnet-env.csproj en voeg drie nieuwe XML-knooppunten toe aan het einde van het
<PropertyGroup>knooppunt:<PackAsTool>true</PackAsTool> <ToolCommandName>dotnet-env</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath><ToolCommandName>is een optioneel element dat de opdracht aanroept die het hulpprogramma na de installatie aanroept. Als dit element niet is opgegeven, is de opdrachtnaam voor het hulpprogramma de assemblynaam. Dit is meestal de naam van het projectbestand zonder de extensie .csproj .Opmerking
Kies een unieke waarde voor
<ToolCommandName>. Vermijd het gebruik van bestandsextensies (zoals.exeof.cmd) omdat het hulpprogramma is geïnstalleerd als een app-host en de opdracht geen extensie mag bevatten. Dit helpt conflicten met bestaande opdrachten te voorkomen en zorgt voor een soepele installatie.<PackageOutputPath>is een optioneel element dat bepaalt waar .NET het NuGet-pakket produceert. De .NET CLI gebruikt het NuGet-pakket om uw hulpprogramma te installeren.Het projectbestand ziet er nu uit zoals in het volgende voorbeeld:
<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>Maak een NuGet-pakket door de opdracht dotnet pack uit te voeren:
dotnet packHet bestand dotnet-env.1.0.0.nupkg wordt gemaakt in de map die wordt geïdentificeerd door de
<PackageOutputPath>waarde van het bestand dotnet-env.csproj , in dit voorbeeld de map ./nupkg .Als u een hulpprogramma openbaar wilt vrijgeven, uploadt u het naar
https://www.nuget.org. Zodra het hulpprogramma beschikbaar is in NuGet, kunnen ontwikkelaars het hulpprogramma installeren met behulp van de opdracht dotnet tool install . Voor deze zelfstudie installeert u het pakket rechtstreeks vanuit de lokale nupkg-map, dus u hoeft het pakket niet te uploaden naar NuGet.
Problemen oplossen
Als u een foutbericht krijgt tijdens het volgen van de zelfstudie, raadpleegt u Problemen met het gebruik van .NET-hulpprogramma's oplossen.
Volgende stappen
In deze zelfstudie hebt u een consoletoepassing gemaakt en deze verpakt als een hulpprogramma. Als u wilt weten hoe u het hulpprogramma als een algemeen hulpprogramma gebruikt, gaat u verder met de volgende zelfstudie.
Als u wilt, kunt u de zelfstudie over globale hulpprogramma's overslaan en rechtstreeks naar de zelfstudie met lokale hulpprogramma's gaan.