nuovo <MODELLO> dotnet

Questo articolo si applica a: ✔️ .NET Core 3.1 SDK e versioni successive

Nome

dotnet new: crea un nuovo progetto, un file di configurazione o una soluzione sulla base del modello specificato.

Riepilogo

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

Descrizione

Il comando dotnet new crea un nuovo progetto .NET o altri artefatti in base a un modello.

Questo comando chiama il motore del modello per creare gli elementi su disco in base alle opzioni e al modello specificati.

Nota

A partire da .NET 7 SDK, la sintassi dotnet new è cambiata:

  • Le opzioni --list, --search, --install e --uninstall sono diventate i sottocomandi list, search, install e uninstall.
  • L'opzione --update-apply è diventata il sottocomando update.
  • Per usare --update-check, usare il sottocomando update con l'opzione --check-only.

Altre opzioni disponibili prima sono ancora disponibili per l'uso con i rispettivi sottocomandi. La Guida separata per ogni sottocomando è disponibile tramite l'opzione -h o --help: dotnet new <subcommand> --help elenca tutte le opzioni supportate per il sottocomando.

Inoltre, il completamento della scheda è ora disponibile per dotnet new. Supporta il completamento per i nomi dei modelli installati e per le opzioni fornite da un modello selezionato. Per attivare il completamento della scheda per .NET SDK, vedere Abilitare il completamento della scheda.

Completamento tramite tasto TAB

A partire da .NET SDK 7.0.100, il completamento della scheda è disponibile per dotnet new. Supporta il completamento per i nomi dei modelli installati, nonché il completamento per le opzioni fornite da un modello selezionato. Per attivare il completamento della scheda per .NET SDK, vedere Abilitare il completamento della scheda.

Ripristino implicito

Non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi che richiedono un ripristino, ad esempio dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Per disabilitare il ripristino implicito, usare l'opzione --no-restore.

Il comando dotnet restore è ancora utile in alcuni scenari in cui ha senso eseguire un ripristino esplicito, ad esempio le compilazioni di integrazione continua in Azure DevOps Services o in sistemi di compilazione che richiedono il controllo esplicito quando viene eseguito il ripristino.

Per informazioni su come gestire i feed NuGet, vedere la dotnet restore documentazione.

Argomenti

  • TEMPLATE

    Modello di cui creare un'istanza quando viene richiamato il comando. Ogni modello può avere opzioni specifiche che è possibile passare. Per altre informazioni, vedere Opzioni del modello.

    È possibile eseguire dotnet new list per visualizzare un elenco di tutti i modelli installati.

    A partire da .NET Core 3.0 SDK e terminando con .NET SDK 5.0.300, l'interfaccia della riga di comando cerca i modelli in NuGet.org quando si richiama il comando dotnet new nelle condizioni seguenti:

    • Se l'interfaccia della riga di comando non riesce a trovare una corrispondenza del modello quando si richiama dotnet new, nemmeno in modo parziale.
    • Se è disponibile una versione più recente del modello disponibile. In questo caso, il progetto o l'artefatto viene creato, ma l'interfaccia della riga di comando avvisa di una versione aggiornata del modello.

    A partire da .NET SDK 5.0.300, il comando search deve essere usato per cercare modelli in NuGet.org.

La tabella seguente illustra i modelli preinstallati con .NET SDK. Il linguaggio predefinito per il modello è indicato tra parentesi quadre. Fare clic sul collegamento nome breve per visualizzare le opzioni del modello specifiche.

Modelli Nome breve Lingua Tag Presentazione
Applicazione console console [C#], F#, VB Comune/Console 1.0
Libreria di classi classlib [C#], F#, VB Comune/Library 1.0
Applicazione WPF wpf [C#], VB Common/WPF 3.0 (5.0 per VB)
Libreria di classi WPF wpflib [C#], VB Common/WPF 3.0 (5.0 per VB)
Libreria di controlli personalizzati WPF wpfcustomcontrollib [C#], VB Common/WPF 3.0 (5.0 per VB)
Libreria di controlli utente WPF wpfusercontrollib [C#], VB Common/WPF 3.0 (5.0 per VB)
Applicazione Windows Forms (WinForms) winforms [C#], VB Common/WinForms 3.0 (5.0 per VB)
Libreria di classi Windows Form (WinForms) winformslib [C#], VB Common/WinForms 3.0 (5.0 per VB)
Servizio del ruolo di lavoro worker [C#] Common/Ruolo di lavoro/Web 3,0
Progetto unit test mstest [C#], F#, VB Test/MSTest 1.0
Progetto di test NUnit 3 nunit [C#], F#, VB Test/NUnit 2.1.400
Elemento di test NUnit 3 nunit-test [C#], F#, VB Test/NUnit 2.2
Progetto di test xUnit xunit [C#], F#, VB Test/xUnit 1.0
Componente Razor razorcomponent [C#] Web/ASP.NET 3,0
Pagina 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
App Web Blazor blazor [C#] Web/Blazor 8.0.100
BlazorWebAssembly App autonoma blazorwasm [C#] Web/Blazor/WebAssembly/PWA 3.1.300
Progetto ASP.NET Core vuoto web [C#], F# Web/Vuoto 1.0
App Web ASP.NET Core (Model-View-Controller) mvc [C#], F# Web/MVC 1.0
App Web ASP.NET Core webapp, razor [C#] Web/MVC/Razor Pages 2.2, 2.0
Libreria di classi Razor razorclasslib [C#] Web/Razor/Libreria/Libreria di classi Razor 2.1
API Web ASP.NET Core webapi [C#], F# API Web/API/API/Servizio/WebAPI 1.0
ASP.NET Core API webapiaot [C#] Web/API Web/API/Servizio 8.0
controller API core ASP.NET apicontroller [C#] Web/ASP.NET 8.0
Servizio gRPC ASP.NET Core grpc [C#] Web/gRPC 3,0
file dotnet gitignore gitignore Config 3,0
File global.json globaljson Config 2.0
Configurazione NuGet nugetconfig Config 1.0
File manifesto di strumento locale dotnet tool-manifest Config 3,0
Configurazione Web webconfig Config 1.0
File di soluzione sln Soluzione 1.0
File buffer del protocollo proto Web/gRPC 3,0
File EditorConfig editorconfig(.. /docs/core/tools/dotnet-new-sdk-templates.md#editorconfig) Config 6.0

La tabella seguente illustra i modelli che sono stati sospesi e non sono più preinstallati con .NET SDK. Fare clic sul collegamento nome breve per visualizzare le opzioni del modello specifiche.

Modelli Nome breve Lingua Tag Non più disponibile a partire da
ASP.NET Core con Angular angular [C#] Web/MVC/SPA 8.0
ASP.NET Core con React.js react [C#] Web/MVC/SPA 8.0
App server Blazor blazorserver [C#] Web/Blazor 8.0
App serverBlazor vuota blazorserver-empty [C#] Web/Blazor 8.0
BlazorWebAssembly App vuota blazorwasm-empty [C#] Web/Blazor/WebAssembly 8.0

Opzioni

  • --dry-run

    Visualizza un riepilogo di cosa accadrebbe se venisse eseguito il comando specificato e se venisse creato un modello. Disponibile a partire da .NET Core 2.2 SDK

  • --force

    Forza la generazione del contenuto anche se ciò modifica i file esistenti. Questa operazione è necessaria quando il modello scelto esegue l'override dei file esistenti nella directory di output.

  • -?|-h|--help

    Stampa la Guida per il comando. Può essere richiamato per il comando dotnet new stesso o per qualsiasi modello. Ad esempio: dotnet new mvc --help.

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

    Linguaggio del modello da creare. Il linguaggio accettato varia a seconda del modello. Vedere i valori predefiniti nella sezione Argomenti. Non è valido per alcuni modelli.

    Nota

    Alcune shell interpretano # come un carattere speciale. In questi casi, è necessario racchiudere il valore del parametro del linguaggio tra virgolette. Ad esempio: dotnet new console -lang "F#".

  • -n|--name <OUTPUT_NAME>

    Nome dell'output creato. Se non viene specificato alcun nome, viene usato il nome della directory corrente.

  • -f|--framework <FRAMEWORK>

    Specifica il framework di destinazione. Si prevede un moniker del framework di destinazione (TFM). Esempi: "net6.0", "net7.0-macos". Questo valore verrà riflesso nel file di progetto.

  • -no-update-check

    Disabilita il controllo degli aggiornamenti dei pacchetti modello durante la creazione di un'istanza di un modello. Disponibile a partire da .NET SDK 6.0.100. Quando si crea un'istanza del modello da un pacchetto modello installato tramite dotnet new --install, dotnet new verifica se è presente un aggiornamento per il modello. A partire da .NET 6, non vengono eseguiti controlli di aggiornamento per i modelli predefiniti .NET. Per aggiornare i modelli predefiniti .NET, installare la versione patch di .NET SDK.

  • -o|--output <OUTPUT_DIRECTORY>

    Percorso in cui posizionare l'output generato. Il valore predefinito è la directory corrente.

  • --project <PROJECT_PATH>

    Progetto a cui viene aggiunto il modello. Questo progetto viene usato per la valutazione del contesto. Se non specificato, verrà utilizzato il progetto nelle directory correnti o padre. Disponibile a partire da .NET SDK 7.0.100.

  • -d|--diagnostics

    Abilita l'output di diagnostica. Disponibile a partire da .NET SDK 7.0.100.

  • -v|--verbosity <LEVEL>

    Imposta il livello di dettaglio del comando. I valori consentiti sono q[uiet], m[inimal], n[ormal] e diag[nostic]. Disponibile a partire da .NET SDK 7.0.100.

Opzioni modello

Ogni modello può avere opzioni aggiuntive definite. Per altre informazioni, vedere modelli predefiniti .NET per dotnet new.

Esempi

  • Creare un progetto di applicazione console C#:

    dotnet new console
    
  • Creare un progetto di applicazione console F# nella directory corrente:

    dotnet new console --language "F#"
    
  • Creare un progetto di libreria di classi .NET Standard 2.0 nella directory specificata:

    dotnet new classlib --framework "netstandard2.0" -o MyLibrary
    
  • Creare un nuovo progetto MVC con ASP.NET Core usando C# nella directory corrente senza autenticazione:

    dotnet new mvc -au None
    
  • Creare un nuovo progetto xUnit:

    dotnet new xunit
    
  • Creare un global.json nella directory corrente impostando la versione dell'SDK su 3.1.101:

    dotnet new globaljson --sdk-version 3.1.101
    
  • Visualizzare la guida per il modello di applicazione console C#:

    dotnet new console -h
    
  • Visualizzare la guida per il modello di applicazione console F#:

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

Vedi anche