Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo aplica-se a: ✔️ .NET 8 SDK e versões posteriores
Este tutorial ensina como criar e empacotar uma ferramenta .NET. A CLI do .NET permite criar um aplicativo de console como uma ferramenta, que outras pessoas podem instalar e executar. As ferramentas .NET são pacotes NuGet instalados a partir da CLI do .NET. Para obter mais informações sobre ferramentas, consulte Visão geral das ferramentas .NET.
A ferramenta que irá criar é uma aplicação de consola que recolhe informações sobre o ambiente .NET atual e as apresenta, incluindo a versão .NET, detalhes do sistema operativo e definições chave de variáveis do ambiente.
Este tutorial é o primeiro de uma série de três tutoriais. Neste tutorial, você cria e empacota uma ferramenta. Nos dois tutoriais seguintes, usas a ferramenta como uma ferramenta global e usas a ferramenta como uma ferramenta local. Os procedimentos para criar uma ferramenta são os mesmos, quer você a use como uma ferramenta global ou como uma ferramenta local.
Pré-requisitos
.NET SDK 10.0 ou uma versão posterior.
Este tutorial utiliza o .NET SDK 10.0, mas aplica-se ao .NET 8.0 e versões posteriores.
Um editor de texto ou editor de código da sua preferência.
Criar um projeto
Abra um prompt de comando e crie uma pasta chamada repositório.
Navegue até a pasta do repositório e digite o seguinte comando:
dotnet new console -n dotnet-envO comando cria uma nova pasta chamada dotnet-env na pasta repositório .
Navegue até à pasta dotnet-env .
cd dotnet-env
Adicionar o código
Abra o arquivo Program.cs com seu editor de código.
Substitua o conteúdo pelo seguinte código:
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)"}"); }O programa utiliza instruções de topo para ler a versão informativa da assembleia usando
Assembly.GetEntryAssembly()eAssemblyInformationalVersionAttribute, depois imprime o nome da aplicação e uma linha separadora antes de mostrar três secções de informação:-
Runtime — a versão .NET, descrição do framework e identificador de runtime, usando
Environment.VersioneRuntimeInformation. - Sistema — Descrição do sistema operativo, arquitetura, nome da máquina e número de processadores.
-
Variáveis de ambiente — seis variáveis-chave relacionadas com .NET (
DOTNET_ROOT,DOTNET_HOST_PATH,DOTNET_CLI_HOME,DOTNET_NOLOGO,NUGET_PACKAGESeDOTNET_ENVIRONMENT), mostrando(not set)para quaisquer que não estejam configuradas.
A
using System.Reflectiondiretiva é necessária paraAssembly.GetEntryAssembly()eAssemblyInformationalVersionAttribute. Ausing System.Runtime.InteropServicesdiretiva é necessária paraRuntimeInformation.-
Runtime — a versão .NET, descrição do framework e identificador de runtime, usando
Salve suas alterações.
Testar a aplicação
Executa o projeto e vê o resultado:
dotnet run
A saída é semelhante ao exemplo a seguir:
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)
Observação
Os valores mostrados dependem da sua máquina e da instalação .NET. A saída varia consoante a plataforma.
Empacotar a ferramenta
Para empacotar e distribuir a aplicação como uma ferramenta, modifique o ficheiro do projeto.
Adicione três novos nós XML ao final do nó
<PropertyGroup>após abrir o ficheiro dotnet-env.csproj.<PackAsTool>true</PackAsTool> <ToolCommandName>dotnet-env</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath><ToolCommandName>é um elemento opcional que especifica o comando que invoca a ferramenta após a instalação. Se esse elemento não for fornecido, o nome do comando para a ferramenta será o nome do assembly, que normalmente é o nome do arquivo do projeto sem a extensão .csproj .Observação
Escolha um valor exclusivo para
<ToolCommandName>. Evite usar extensões de ficheiros (como.exeou.cmd) porque a ferramenta está instalada como anfitriã de aplicação e o comando não deve incluir uma extensão. Isso ajuda a evitar conflitos com comandos existentes e garante uma experiência de instalação suave.<PackageOutputPath>é um elemento opcional que determina onde .NET produz o pacote NuGet. A CLI .NET usa o pacote NuGet para instalar a sua ferramenta.O arquivo de projeto agora se parece com o exemplo a seguir:
<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>Crie um pacote NuGet executando o comando dotnet pack :
dotnet packO ficheiro dotnet-env.1.0.0.nupkg é criado na pasta identificada pelo
<PackageOutputPath>valor do ficheiro dotnet-env.csproj , que neste exemplo é a pasta ./nupkg .Para lançar uma ferramenta publicamente, carregue-a em
https://www.nuget.org. Uma vez que a ferramenta esteja disponível no NuGet, os programadores podem instalá-la usando o comando de instalação da ferramenta dotnet . Para este tutorial, você instala o pacote diretamente da pasta nupkg local, portanto, não há necessidade de carregar o pacote no NuGet.
Solucionar problemas
Se você receber uma mensagem de erro ao seguir o tutorial, consulte Solucionar problemas de uso da ferramenta .NET.
Próximos passos
Neste tutorial, você criou um aplicativo de console e o empacotou como uma ferramenta. Para saber como usar a ferramenta como uma ferramenta global, avance para o próximo tutorial.
Se preferir, você pode pular o tutorial de ferramentas globais e ir diretamente para o tutorial de ferramentas locais.