Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek se vztahuje na: ✔️ .NET 8 SDK a novější verze
V tomto kurzu se naučíte, jak vytvořit a zabalit nástroj .NET. Rozhraní příkazového řádku .NET umožňuje vytvořit konzolovou aplikaci jako nástroj, který můžou ostatní instalovat a spouštět. Nástroje .NET jsou balíčky NuGet nainstalované z rozhraní příkazového řádku .NET. Další informace o nástrojích najdete v tématu Přehled nástrojů .NET.
Nástroj, který vytvoříte, je konzolová aplikace, která přebírá informace o aktuálním prostředí .NET a zobrazuje ho, včetně .NET verze, podrobností operačního systému a klíčových nastavení proměnných prostředí.
Tento kurz je první ze tří kurzů. V tomto kurzu vytvoříte a zabalíte nástroj. V dalších dvou kurzech použijete nástroj jako globální nástroj a použijete ho jako místní nástroj. Postupy pro vytvoření nástroje jsou stejné bez ohledu na to, jestli ho používáte jako globální nástroj nebo jako místní nástroj.
Požadavky
.NET SDK 10.0 nebo novější verzi.
Tento kurz používá .NET SDK 10.0, ale tento průvodce platí pro .NET 8.0 a novější.
Textový editor nebo editor kódu podle vašeho výběru.
Vytvoření projektu
Otevřete příkazový řádek a vytvořte složku s názvem úložiště.
Přejděte do složky úložiště a zadejte následující příkaz:
dotnet new console -n dotnet-envPříkaz vytvoří novou složku s názvem dotnet-env ve složce úložiště .
Přejděte do složky dotnet-env .
cd dotnet-env
Přidání kódu
Otevřete soubor Program.cs v editoru kódu.
Obsah nahraďte následujícím kódem:
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)"}"); }Program používá příkazy nejvyšší úrovně ke čtení informační verze sestavení pomocí
Assembly.GetEntryAssembly()aAssemblyInformationalVersionAttributepak vytiskne název aplikace a oddělovač řádku před zobrazením tří částí informací:-
Runtime – identifikátor .NET verze, popisu architektury a modulu runtime pomocí identifikátoru
Environment.VersionaRuntimeInformation. - Systém – popis operačního systému, architektura, název počítače a počet procesorů.
-
Proměnné prostředí – šest klíčových proměnných .NET (
DOTNET_ROOT,DOTNET_HOST_PATH,DOTNET_CLI_HOME,DOTNET_NOLOGO,NUGET_PACKAGESaDOTNET_ENVIRONMENT), zobrazující(not set)pro všechny, které nejsou nakonfigurovaná.
Směrnice
using System.Reflectionje vyžadována proAssembly.GetEntryAssembly()aAssemblyInformationalVersionAttribute. Směrnice je vyžadovánausing System.Runtime.InteropServicesproRuntimeInformation.-
Runtime – identifikátor .NET verze, popisu architektury a modulu runtime pomocí identifikátoru
Uložte změny.
Otestování aplikace
Spusťte projekt a prohlédněte si výstup:
dotnet run
Výstup vypadá podobně jako v následujícím příkladu:
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)
Poznámka:
Zobrazené hodnoty závisí na vašem počítači a .NET instalaci. Výstup se liší podle platformy.
Zabalení nástroje
Pokud chcete aplikaci zabalit a distribuovat jako nástroj, upravte soubor projektu.
Otevřete soubor dotnet-env.csproj a přidejte na konec
<PropertyGroup>uzlu tři nové uzly XML:<PackAsTool>true</PackAsTool> <ToolCommandName>dotnet-env</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath><ToolCommandName>je volitelný prvek, který určuje příkaz, který vyvolá nástroj po instalaci. Pokud tento prvek není zadaný, název příkazu pro nástroj je název sestavení, což je obvykle název souboru projektu bez přípony .csproj .Poznámka:
Zvolte jedinečnou hodnotu pro
<ToolCommandName>. Nepoužívejte přípony souborů (například.exenebo.cmd), protože nástroj je nainstalovaný jako hostitel aplikace a příkaz by neměl obsahovat příponu. Tím zabráníte konfliktům s existujícími příkazy a zajistíte hladký průběh instalace.<PackageOutputPath>je volitelný prvek, který určuje, kde .NET vytvoří balíček NuGet. Rozhraní příkazového řádku .NET k instalaci vašeho nástroje používá balíček NuGet.Soubor projektu teď vypadá jako v následujícím příkladu:
<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>Spuštěním příkazu dotnet pack vytvořte balíček NuGet:
dotnet packSoubor dotnet-env.1.0.0.nupkg se vytvoří ve složce identifikované
<PackageOutputPath>hodnotou ze souboru dotnet-env.csproj , což je v tomto příkladu složka ./nupkg .Pokud chcete nástroj veřejně uvolnit, nahrajte ho do
https://www.nuget.orgsouboru . Jakmile je nástroj dostupný na NuGetu, můžou vývojáři nástroj nainstalovat pomocí příkazu dotnet tool install . Pro účely tohoto kurzu nainstalujete balíček přímo z místní složky nupkg , takže nemusíte balíček nahrávat do NuGetu.
Řešení problémů
Pokud se při sledování kurzu zobrazí chybová zpráva, přečtěte si téma Řešení potíží s používáním nástrojů .NET.
Další kroky
V tomto kurzu jste vytvořili konzolovou aplikaci a zabalili ji jako nástroj. Pokud se chcete dozvědět, jak nástroj používat jako globální nástroj, přejděte k dalšímu kurzu.
Pokud chcete, můžete přeskočit kurz globálních nástrojů a přejít přímo na kurz místních nástrojů.