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
--list
opções ,--search
,--install
e--uninstall
tornaram-selist
,search
,install
euninstall
subcomandos. - A
--update-apply
opção tornou-se oupdate
subcomando. - Para usar
--update-check
o , use oupdate
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 publish
e 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.- Se a CLI não conseguir encontrar uma correspondência de modelo ao invocar
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 MSTest | mstest |
[C#], F#, VB | Teste/MSTest | 1.0 |
Classe de teste MSTest | mstest-class |
[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 --install
o ,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]
ediag[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