Como gerenciar ferramentas .NET

Este artigo aplica-se a: ✔️ SDK do .NET Core 2.1 e versões posteriores.

Uma ferramenta .NET é um pacote NuGet especial que contém um aplicativo de console. Pode instalar uma ferramenta na sua máquina das seguintes formas:

  • Como uma ferramenta global.

    Os binários da ferramenta são instalados em um diretório padrão que é adicionado à variável de ambiente PATH. Você pode invocar a ferramenta de qualquer diretório na máquina sem especificar sua localização. Uma versão de uma ferramenta é usada para todos os diretórios na máquina.

  • Como uma ferramenta global em um local personalizado (também conhecida como ferramenta de caminho de ferramenta).

    Os binários da ferramenta são instalados em um local que você especificar. Você pode invocar a ferramenta a partir do diretório de instalação, fornecendo o diretório com o nome do comando ou adicionando o diretório à variável de ambiente PATH. Uma versão de uma ferramenta é usada para todos os diretórios na máquina.

  • Como uma ferramenta local (aplica-se ao .NET Core SDK 3.0 e versões posteriores).

    Os binários da ferramenta são instalados em um diretório padrão. Você pode invocar a ferramenta a partir do diretório de instalação ou de qualquer um de seus subdiretórios. Diretórios diferentes podem usar versões diferentes da mesma ferramenta.

    A CLI do .NET usa arquivos de manifesto para controlar as ferramentas instaladas como locais em um diretório. Quando o arquivo de manifesto é salvo no diretório raiz de um repositório de código-fonte, um colaborador pode clonar o repositório e invocar um único comando da CLI do .NET para instalar todas as ferramentas listadas nos arquivos de manifesto.

Importante

As ferramentas .NET são executadas em total confiança. Não instale uma ferramenta .NET a menos que confie no autor.

As ferramentas .NET podem não funcionar corretamente se o .NET tiver sido instalado via Snap.

Encontre uma ferramenta

Aqui estão algumas maneiras de encontrar ferramentas:

Verifique o autor e as estatísticas

As ferramentas .NET podem ser poderosas porque são executadas em confiança total e as ferramentas globais são adicionadas à variável de ambiente PATH. Não transfira ferramentas de pessoas em quem não confia.

Se a ferramenta estiver hospedada no NuGet, você poderá verificar o autor e as estatísticas pesquisando pela ferramenta.

Instalar uma ferramenta global

Para instalar uma ferramenta como uma ferramenta global, use a -g opção ou --global de instalação da ferramenta dotnet, conforme mostrado no exemplo a seguir:

dotnet tool install -g dotnetsay

A saída mostra o comando usado para invocar a ferramenta e a versão instalada, semelhante ao exemplo a seguir:

You can invoke the tool using the following command: dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.

Nota

Por padrão, a arquitetura dos binários do .NET a serem instalados representa a arquitetura do sistema operacional em execução no momento. Para especificar uma arquitetura de sistema operacional diferente, consulte dotnet tool install, --arch option.

O local padrão para os binários de uma ferramenta depende do sistema operacional:

SO Caminho
Linux/macOS $HOME/.dotnet/tools
Windows %USERPROFILE%\.dotnet\tools

Esse local é adicionado ao caminho do usuário quando o SDK é executado pela primeira vez. Assim, as ferramentas globais podem ser invocadas a partir de qualquer diretório sem especificar o local da ferramenta.

O acesso à ferramenta é específico do usuário, não global da máquina. Uma ferramenta global só está disponível para o usuário que instalou a ferramenta.

Instalar uma ferramenta global em um local personalizado

Para instalar uma ferramenta como uma ferramenta global em um local personalizado, use a --tool-path opção de instalação da ferramenta dotnet, conforme mostrado nos exemplos a seguir:

No Windows:

dotnet tool install dotnetsay --tool-path c:\dotnet-tools

No Linux ou macOS:

dotnet tool install dotnetsay --tool-path ~/bin

O SDK .NET não adiciona esse local automaticamente à variável de ambiente PATH. Para invocar uma ferramenta de caminho de ferramenta, você deve garantir que o comando esteja disponível usando um dos seguintes métodos:

  • Adicione o diretório de instalação à variável de ambiente PATH.
  • Especifique o caminho completo para a ferramenta quando você invocá-la.
  • Invoque a ferramenta a partir do diretório de instalação.

Instalar uma ferramenta local

Aplica-se ao SDK do .NET Core 3.0 e posterior.

Se você quiser instalar uma ferramenta apenas para acesso local (para o diretório e subdiretórios atuais), você deve adicionar a ferramenta a um arquivo de manifesto da ferramenta. Para criar um arquivo de manifesto da ferramenta, execute o dotnet new tool-manifest comando:

dotnet new tool-manifest

Este comando cria um arquivo de manifesto chamado dotnet-tools.json no diretório .config. Para adicionar uma ferramenta local ao arquivo de manifesto, use o comando dotnet tool install e omita as --global opções e --tool-path , conforme mostrado no exemplo a seguir:

dotnet tool install dotnetsay

A saída do comando mostra em qual arquivo de manifesto a ferramenta recém-instalada está presente, semelhante ao exemplo a seguir:

You can invoke the tool from this directory using the following command:
dotnet tool run dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.
Entry is added to the manifest file /home/name/botsay/.config/dotnet-tools.json.

O exemplo a seguir mostra um arquivo de manifesto com duas ferramentas locais instaladas:

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "botsay": {
      "version": "1.0.0",
      "commands": [
        "botsay"
      ]
    },
    "dotnetsay": {
      "version": "2.1.3",
      "commands": [
        "dotnetsay"
      ]
    }
  }
}

Normalmente, você adiciona uma ferramenta local ao diretório raiz do repositório. Depois de fazer check-in do arquivo de manifesto no repositório, os desenvolvedores que fazem check-out do código do repositório obtêm o arquivo de manifesto mais recente. Para instalar todas as ferramentas listadas no arquivo de manifesto, eles executam o dotnet tool restore comando:

dotnet tool restore

A saída indica as ferramentas restauradas:

Tool 'botsay' (version '1.0.0') was restored. Available commands: botsay
Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
Restore was successful.

Instalar uma versão específica da ferramenta

Para instalar uma versão de pré-lançamento ou uma versão específica de uma ferramenta, especifique o número da versão usando a --version opção, conforme mostrado no exemplo a seguir:

dotnet tool install dotnetsay --version 2.1.3

Para instalar uma versão de pré-lançamento da ferramenta sem especificar o número exato da versão, use a opção e forneça um curinga --version , conforme mostrado no exemplo a seguir:

dotnet tool install --global dotnetsay --version "*-rc*"

Utilizar uma ferramenta

O comando que você usa para invocar uma ferramenta pode ser diferente do nome do pacote que você instala. Para exibir todas as ferramentas atualmente instaladas na máquina para o usuário atual, use o comando dotnet tool list :

dotnet tool list

A saída mostra a versão e o comando de cada ferramenta, semelhante ao exemplo a seguir:

Package Id      Version      Commands       Manifest
-------------------------------------------------------------------------------------------
botsay          1.0.0        botsay         /home/name/repository/.config/dotnet-tools.json
dotnetsay       2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json

Como mostrado no exemplo anterior, a lista mostra ferramentas locais. Para ver as ferramentas globais, use a --global opção. Para ver as ferramentas de caminho de ferramenta, use a --tool-path opção.

Para listar uma ferramenta específica, use a lista de ferramentas dotnet PACKAGE_ID>< comando:

dotnet tool list dotnetsay

A saída só listará essa ferramenta se ela estiver instalada, semelhante ao exemplo a seguir:

Package Id      Version      Commands       Manifest
-------------------------------------------------------------------------------------------
dotnetsay       2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json

Invoque uma ferramenta global

Para ferramentas globais, use o comando tool sozinho. Por exemplo, se o comando for dotnetsay ou dotnet-doc, é isso que você usa para invocar a ferramenta global:

dotnetsay
dotnet-doc

Se o comando começar com o prefixo dotnet-, uma maneira alternativa de invocar a ferramenta é usar o dotnet comando e omitir o prefixo do comando tool. Por exemplo, se o comando for dotnet-doc, o comando a seguir invoca a ferramenta:

dotnet doc

No entanto, no cenário a seguir, você não pode usar o dotnet comando para invocar uma ferramenta global:

  • Uma ferramenta global e uma ferramenta local têm o mesmo comando prefixado por dotnet-.
  • Você deseja invocar a ferramenta global de um diretório que está no escopo da ferramenta local.

Nesse cenário, dotnet doc e dotnet dotnet-doc invoque a ferramenta local. Para invocar a ferramenta global, use o comando por si só:

dotnet-doc

Invocar uma ferramenta de caminho de ferramenta

Para invocar uma ferramenta global instalada usando a tool-path opção, verifique se o comando está disponível, conforme explicado anteriormente neste artigo.

Invocar uma ferramenta local

Para invocar uma ferramenta local, você deve usar o dotnet comando de dentro do diretório de instalação. Você pode usar a forma longa (dotnet tool run <COMMAND_NAME>) ou a forma curta (dotnet <COMMAND_NAME>), conforme mostrado nos exemplos a seguir:

dotnet tool run dotnetsay
dotnet dotnetsay

Se o comando for prefixado pelo dotnet-, você poderá incluir ou omitir o prefixo ao invocar a ferramenta. Por exemplo, se o comando for dotnet-doc, qualquer um dos exemplos a seguir invoca a ferramenta local:

dotnet tool run dotnet-doc
dotnet dotnet-doc
dotnet doc

Atualizar uma ferramenta

Atualizar uma ferramenta envolve desinstalá-la e reinstalá-la com a versão estável mais recente. Para atualizar uma ferramenta, use o comando dotnet tool update com a mesma opção que você usou para instalar a ferramenta:

dotnet tool update --global <packagename>
dotnet tool update --tool-path <packagename>
dotnet tool update <packagename>

Para uma ferramenta local, o SDK procura no diretório atual e nos diretórios pai para encontrar o primeiro arquivo de manifesto que contém a ID do pacote. Se não houver esse ID de pacote em nenhum arquivo de manifesto, o SDK adicionará uma nova entrada ao arquivo de manifesto mais próximo.

Desinstalar uma ferramenta

Desinstale uma ferramenta usando o comando dotnet tool uninstall com a mesma opção que você usou para instalar a ferramenta:

dotnet tool uninstall --global <packagename>
dotnet tool uninstall --tool-path <packagename>
dotnet tool uninstall <packagename>

Para uma ferramenta local, o SDK procura no diretório atual e nos diretórios pai para encontrar o primeiro arquivo de manifesto que contém a ID do pacote.

Obter ajuda e solucionar problemas

Se uma ferramenta falhar ao instalar ou executar, consulte Solucionar problemas de uso da ferramenta .NET. Você pode obter uma lista de comandos e parâmetros disponíveis dotnet tool usando o --help parâmetro:

dotnet tool --help

Para obter instruções de utilização da ferramenta, introduza um dos seguintes comandos ou consulte o Web site da ferramenta:

<command> --help
dotnet <command> --help

Consulte também