Gerenciar modelos de projeto e de item do .NET

O .NET fornece um sistema de modelos que permite que os usuários instalem ou desinstalem pacotes que contêm modelos do NuGet, um arquivo de pacote NuGet ou um diretório do sistema de arquivos. Este artigo descreve como gerenciar modelos do .NET por meio da CLI do SDK do .NET.

Para obter mais informações sobre como criar modelos, confira Tutorial: criar modelos.

Instalar modelo

Os pacotes de modelos são instalados por meio do comando do SDK instalar o dotnet new. Você pode fornecer o identificador do pacote NuGet de um pacote de modelos ou uma pasta que contenha os arquivos de modelo.

Pacote NuGet hospedado

Os pacotes de modelos da CLI do .NET são carregados no NuGet para distribuição ampla. Os pacotes de modelos também podem ser instalados por um feed privado. Em vez de carregar um pacote de modelos em um feed do NuGet, os arquivos de modelo nupkg podem ser distribuídos e instalados manualmente, conforme descrito na seção Pacote NuGet local.

Para obter mais informações sobre como configurar feeds do NuGet, confira dotnet nuget add source.

Para instalar um pacote de modelos do feed padrão do NuGet, use o comando dotnet new install {package-id}:

dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates

Para instalar um pacote de modelos do feed padrão do NuGet com uma versão específica, use o comando dotnet new install {package-id}::{version}:

dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.2.6

Pacote NuGet local

Quando um pacote de modelos é criado, um arquivo nupkg é gerado. Se você tiver um arquivo nupkg contendo modelos, poderá instalá-lo com o comando dotnet new install {path-to-package}:

dotnet new install c:\code\nuget-packages\Some.Templates.1.0.0.nupkg
dotnet new install ~/code/nuget-packages/Some.Templates.1.0.0.nupkg

Pasta

Como alternativa à instalação do modelo por um arquivo nupkg, você também pode instalar modelos por uma pasta diretamente com o comando dotnet new install {folder-path}. A pasta especificada é tratada como o identificador do pacote de modelos de qualquer modelo encontrado. Qualquer modelo encontrado na hierarquia da pasta especificada é instalado.

dotnet new install c:\code\nuget-packages\some-folder\
dotnet new install ~/code/nuget-packages/some-folder/

O {folder-path} especificado no comando torna-se o identificador do pacote de modelos de todos os modelos encontrados. Conforme especificado na seção Listar pacotes de modelos, você pode obter uma lista de pacotes de modelos instalados com o comando dotnet new uninstall. Neste exemplo, o identificador do pacote de modelos é mostrado como a pasta usada na instalação:

dotnet new uninstall
Currently installed items:

... cut to save space ...

  c:\code\nuget-packages\some-folder
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall c:\code\nuget-packages\some-folder
dotnet new uninstall
Currently installed items:

... cut to save space ...

  /home/username/code/templates
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall /home/username/code/templates

Desinstalar o pacote de modelos

Os pacotes de modelos são desinstalados por meio do comando do SDK desinstalar o dotnet new. Você pode fornecer o identificador do pacote NuGet de um pacote de modelos ou uma pasta que contenha os arquivos de modelo.

Pacote NuGet

Depois que um pacote de modelos NuGet for instalado, por um feed do NuGet ou um arquivo nupkg, você poderá desinstalá-lo fazendo referência ao identificador do pacote NuGet.

Para desinstalar um pacote de modelos, use o comando dotnet new uninstall {package-id}:

dotnet new uninstall Microsoft.DotNet.Web.Spa.ProjectTemplates

Pasta

Quando os modelos são instalados por meio de um caminho de pasta, esse caminho se torna o identificador do pacote de modelos.

Para desinstalar um pacote de modelos, use o comando dotnet new uninstall {package-folder-path}:

dotnet new uninstall c:\code\nuget-packages\some-folder
dotnet new uninstall /home/username/code/templates

Listar pacotes de modelos

Usando o comando de desinstalação padrão sem um identificador do pacote, você pode ver uma lista de pacotes de modelos instalados juntamente com o comando que desinstala cada pacote de modelos.

dotnet new uninstall
Currently installed items:

... cut to save space ...

  c:\code\nuget-packages\some-folder
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall c:\code\nuget-packages\some-folder

Instalar pacotes de modelos de outros SDKs

Se você instalou cada versão do SDK sequencialmente, por exemplo, instalou o SDK 6.0, o SDK 7.0 e assim por diante, terá todos os modelos do SDK instalados. No entanto, se você começar com uma versão posterior do SDK, como a 7.0, somente os modelos dessa versão serão incluídos. Modelos de qualquer outra versão não serão incluídos.

Os modelos do .NET estão disponíveis no NuGet e você pode instalá-los como qualquer outro modelo. Para obter mais informações, confira Instalar pacote NuGet hospedado.

. Identificador do pacote NuGet
.NET Core 2.1 Microsoft.DotNet.Common.ProjectTemplates.2.1
.NET Core 2.2 Microsoft.DotNet.Common.ProjectTemplates.2.2
.NET Core 3.0 Microsoft.DotNet.Common.ProjectTemplates.3.0
.NET Core 3.1 Microsoft.DotNet.Common.ProjectTemplates.3.1
.NET 5.0 Microsoft.DotNet.Common.ProjectTemplates.5.0
.NET 6.0 Microsoft.DotNet.Common.ProjectTemplates.6.0
.NET 7.0 Microsoft.DotNet.Common.ProjectTemplates.7.0
ASP.NET Core 2.1 Microsoft.DotNet.Web.ProjectTemplates.2.1
ASP.NET Core 2.2 Microsoft.DotNet.Web.ProjectTemplates.2.2
ASP.NET Core 3.0 Microsoft.DotNet.Web.ProjectTemplates.3.0
ASP.NET Core 3.1 Microsoft.DotNet.Web.ProjectTemplates.3.1
ASP.NET Core 5.0 Microsoft.DotNet.Web.ProjectTemplates.5.0
ASP.NET Core 6.0 Microsoft.DotNet.Web.ProjectTemplates.6.0
ASP.NET Core 7.0 Microsoft.DotNet.Web.ProjectTemplates.7.0

Por exemplo, o SDK do .NET 7 inclui modelos de um aplicativo de console direcionado para o .NET 7. Para direcionar para o .NET Core 3.1, você precisaria instalar o pacote de modelos 3.1.

  1. Tente criar um aplicativo direcionado para o .NET Core 3.1.

    dotnet new console --framework netcoreapp3.1
    

    Se você encontrar uma mensagem de erro, precisará instalar os modelos.

  2. Instale os modelos de projeto do .NET Core 3.1.

    dotnet new install Microsoft.DotNet.Common.ProjectTemplates.3.1
    
  3. Tente criar o aplicativo uma segunda vez.

    dotnet new console --framework netcoreapp3.1
    

    E você verá uma mensagem indicando que o projeto foi criado.

O modelo "Aplicativo de Console" foi criado com êxito.

Processando ações pós-criação... Executando 'dotnet restore' em path-to-project-file.csproj... Determinando projetos a serem restaurados... Restauração concluída em 1,05 segundo para path-to-project-file.csproj.

A restauração foi bem-sucedida.

Confira também