dotnet novo <TEMPLATE>

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

Nome

dotnet new - Cria um novo projeto, arquivo de configuração ou solução com base no modelo especificado.

Sinopse

dotnet new <TEMPLATE> [--dry-run] [--force] [-lang|--language {"C#"|"F#"|VB}]
    [-n|--name <OUTPUT_NAME>] [-f|--framework <FRAMEWORK>] [--no-update-check]
    [-o|--output <OUTPUT_DIRECTORY>] [--project <PROJECT_PATH>]
    [-d|--diagnostics] [--verbosity <LEVEL>] [Template options]

dotnet new -h|--help

Description

O dotnet new comando cria um projeto .NET ou outros artefatos com base em um modelo.

O comando chama o mecanismo de modelo para criar os artefatos no disco com base no modelo e nas opções especificadas.

Nota

A partir do SDK do .NET 7, a dotnet new sintaxe foi alterada:

  • As --listopções , --search, --installe --uninstall tornaram-se list, search, installe uninstall subcomandos.
  • A --update-apply opção tornou-se o update subcomando.
  • Para usar --update-checko , use o update subcomando com a --check-only opção.

Outras opções que estavam disponíveis antes ainda estão disponíveis para uso com seus respetivos subcomandos. Ajuda separada para cada subcomando está disponível através da -h opção ou --help : dotnet new <subcommand> --help lista todas as opções suportadas para o subcomando.

Além disso, o preenchimento de guias agora está disponível para dotnet new. Ele suporta a conclusão para nomes de modelo instalados e para as opções que um modelo selecionado fornece. Para ativar o preenchimento de guias para o SDK do .NET, consulte Habilitar conclusão de guia.

Preenchimento de tabulação

A partir do .NET SDK 7.0.100, o preenchimento da guia está disponível para dotnet new. Ele suporta a conclusão para nomes de modelo instalados, bem como a conclusão para as opções que um modelo selecionado fornece. Para ativar o preenchimento de guias para o SDK do .NET, consulte Habilitar conclusão de guia.

Restauração implícita

Você não precisa executar dotnet restore porque ele é executado implicitamente por todos os comandos que exigem uma restauração para ocorrer, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishe dotnet pack. Para desativar a restauração implícita, use a --no-restore opção.

O dotnet restore comando ainda é útil em determinados cenários em que a restauração explícita faz sentido, como compilações de integração contínua nos Serviços de DevOps do Azure ou em sistemas de compilação que precisam controlar explicitamente quando a restauração ocorre.

Para obter informações sobre como gerenciar feeds NuGet, consulte a dotnet restore documentação.

Argumentos

  • TEMPLATE

    O modelo a ser instanciado quando o comando é invocado. Cada modelo pode ter opções específicas que você pode passar. Para obter mais informações, consulte Opções de modelo.

    Você pode executar dotnet new list para ver uma lista de todos os modelos instalados.

    Começando com o SDK do .NET Core 3.0 e terminando com o SDK do .NET 5.0.300, a CLI procura modelos no NuGet.org quando você invoca o dotnet new comando nas seguintes condições:

    • Se a CLI não conseguir encontrar uma correspondência de modelo ao invocar dotnet new, nem mesmo parcial.
    • Se houver uma versão mais recente do modelo disponível. Nesse caso, o projeto ou artefato é criado, mas a CLI avisa sobre uma versão atualizada do modelo.

    A partir do .NET SDK 5.0.300, o search comando deve ser usado para pesquisar modelos no NuGet.org.

A tabela a seguir mostra os modelos que vêm pré-instalados com o SDK do .NET. O idioma padrão para o modelo é mostrado entre colchetes. Clique no link de nome curto para ver as opções de modelo específicas.

Modelos Nome abreviado Idioma Etiquetas Introduzido
Aplicação de Consola console [C#], F#, VB Comum/Console 1.0
Biblioteca de classes classlib [C#], F#, VB Comum/Biblioteca 1.0
Aplicação WPF wpf [C#], VB Comum/WPF 3.0 (5.0 para VB)
Biblioteca de classes do WPF wpflib [C#], VB Comum/WPF 3.0 (5.0 para VB)
Biblioteca de controle personalizado do WPF wpfcustomcontrollib [C#], VB Comum/WPF 3.0 (5.0 para VB)
Biblioteca de controle de usuário do WPF wpfusercontrollib [C#], VB Comum/WPF 3.0 (5.0 para VB)
Aplicativo Windows Forms (WinForms) winforms [C#], VB Comum/WinForms 3.0 (5.0 para VB)
Biblioteca de classes do Windows Forms (WinForms) winformslib [C#], VB Comum/WinForms 3.0 (5.0 para VB)
Serviço ao Trabalhador worker [C#] Comum/Trabalhador/Web 3.0
Projeto de Teste Unitário mstest [C#], F#, VB Teste/MSTest 1.0
Projeto de teste NUnit 3 nunit [C#], F#, VB Teste/NUnit 2.1.400
Item de teste NUnit 3 nunit-test [C#], F#, VB Teste/NUnit 2.2
Projeto de Teste xUnit xunit [C#], F#, VB Teste/xUnit 1.0
Componente da navalha razorcomponent [C#] Web/ASP.NET 3.0
Página Razor page [C#] Web/ASP.NET 2.0
MVC ViewImports viewimports [C#] Web/ASP.NET 2.0
MVC ViewStart viewstart [C#] Web/ASP.NET 2.0
Blazor Aplicação Web blazor [C#] Sítio Web/Blazor 8.0.100
BlazorWebAssembly Aplicação autónoma blazorwasm [C#] Web/Blazor/WebAssembly/PWA 3.1.300
ASP.NET núcleo vazio web [C#], F# Web/Vazio 1.0
ASP.NET Core Web App (Model-View-Controller) mvc [C#], F# Web/MVC 1.0
ASP.NET Core Web App webapp, razor [C#] Páginas Web/MVC/Razor 2.2, 2.0
Biblioteca de Classes Razor razorclasslib [C#] Web/Razor/Biblioteca/Biblioteca de Classes Razor 2.1
API Web ASP.NET Core webapi [C#], F# Web/API Web/API/Serviço/WebAPI 1.0
API principal do ASP.NET webapiaot [C#] Web/API Web/API/Serviço 8.0
ASP.NET controlador de API principal apicontroller [C#] Web/ASP.NET 8.0
ASP.NET Serviço gRPC principal grpc [C#] Web/gRPC 3.0
arquivo dotnet gitignore gitignore Configurar 3.0
global.json arquivo globaljson Configurar 2.0
Configuração do NuGet nugetconfig Configurar 1.0
Arquivo de manifesto da ferramenta local Dotnet tool-manifest Configurar 3.0
Configuração da Web webconfig Configurar 1.0
Arquivo de solução sln Solução 1.0
Arquivo de buffer de protocolo proto Web/gRPC 3.0
Arquivo EditorConfig editorconfig Configurar 6,0

A tabela a seguir mostra modelos que foram descontinuados e não vêm mais pré-instalados com o SDK do .NET. Clique no link de nome curto para ver as opções de modelo específicas.

Modelos Nome abreviado Idioma Etiquetas Descontinuado desde
ASP.NET Core com Angular angular [C#] Web/MVC/SPA 8.0
ASP.NET Core com React.js react [C#] Web/MVC/SPA 8.0
Blazor Aplicativo de servidor blazorserver [C#] Sítio Web/Blazor 8.0
Blazor Aplicativo de servidor vazio blazorserver-empty [C#] Sítio Web/Blazor 8.0
BlazorWebAssembly Aplicativo vazio blazorwasm-empty [C#] Sítio Web/Blazor/WebAssembly 8.0

Opções

  • --dry-run

    Exibe um resumo do que aconteceria se o comando dado fosse executado se resultasse na criação de um modelo. Disponível desde o SDK do .NET Core 2.2.

  • --force

    Força o conteúdo a ser gerado, mesmo que altere arquivos existentes. Isso é necessário quando o modelo escolhido substitui os arquivos existentes no diretório de saída.

  • -?|-h|--help

    Imprime a ajuda para o comando. Ele pode ser invocado para o dotnet new próprio comando ou para qualquer modelo. Por exemplo, dotnet new mvc --help.

  • -lang|--language {C#|F#|VB}

    A linguagem do modelo a ser criado. O idioma aceito varia de acordo com o modelo (consulte os padrões na seção de argumentos ). Não é válido para alguns modelos.

    Nota

    Algumas conchas interpretam # como um caráter especial. Nesses casos, coloque o valor do parâmetro language entre aspas. Por exemplo, dotnet new console -lang "F#".

  • -n|--name <OUTPUT_NAME>

    O nome da saída criada. Se nenhum nome for especificado, o nome do diretório atual será usado.

  • -f|--framework <FRAMEWORK>

    Especifica a estrutura de destino. Ele espera um apelido de estrutura de destino (TFM). Exemplos: "net6.0", "net7.0-macos". Esse valor será refletido no arquivo de projeto.

  • -no-update-check

    Desabilita a verificação de atualizações de pacotes de modelos ao instanciar um modelo. Disponível desde .NET SDK 6.0.100. Ao instanciar o modelo de um pacote de modelo que foi instalado usando dotnet new --installo , dotnet new verifica se há uma atualização para o modelo. A partir do .NET 6, nenhuma verificação de atualização é feita para modelos padrão do .NET. Para atualizar os modelos padrão do .NET, instale a versão do patch do SDK do .NET.

  • -o|--output <OUTPUT_DIRECTORY>

    Local para colocar a saída gerada. O padrão é o diretório atual.

  • --project <PROJECT_PATH>

    O projeto ao qual o modelo é adicionado. Este projeto é usado para avaliação de contexto. Se não for especificado, o projeto nos diretórios pai ou atual será usado. Disponível desde .NET SDK 7.0.100.

  • -d|--diagnostics

    Permite a saída de diagnóstico. Disponível desde .NET SDK 7.0.100.

  • -v|--verbosity <LEVEL>

    Define o nível de detalhamento do comando. Os valores permitidos são q[uiet], m[inimal], n[ormal]e diag[nostic]. Disponível desde .NET SDK 7.0.100.

Opções do modelo

Cada modelo pode ter opções adicionais definidas. Para obter mais informações, consulte Modelos padrão do .NET para dotnet new.

Exemplos

  • Crie um projeto de aplicativo de console C#:

    dotnet new console
    
  • Crie um projeto de aplicativo de console F# no diretório atual:

    dotnet new console --language "F#"
    
  • Crie um projeto de biblioteca de classes do .NET Standard 2.0 no diretório especificado:

    dotnet new classlib --framework "netstandard2.0" -o MyLibrary
    
  • Crie um novo projeto ASP.NET Core C# MVC no diretório atual sem autenticação:

    dotnet new mvc -au None
    
  • Crie um novo projeto xUnit:

    dotnet new xunit
    
  • Crie um global.json no diretório atual definindo a versão do SDK como 8.0.101:

    dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
    
  • Mostrar ajuda para o modelo de aplicativo de console C#:

    dotnet new console -h
    
  • Mostrar ajuda para o modelo de aplicativo de console F#:

    dotnet new console --language "F#" -h
    

Consulte também