nuovo <MODELLO> dotnet
Questo articolo si applica a: ✔️ .NET Core 3.1 SDK e versioni successive
dotnet new
: crea un nuovo progetto, un file di configurazione o una soluzione sulla base del modello specificato.
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
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 sottocomandilist
,search
,install
euninstall
. - L'opzione
--update-apply
è diventata il sottocomandoupdate
. - Per usare
--update-check
, usare il sottocomandoupdate
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.
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.
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.
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.- Se l'interfaccia della riga di comando non riesce a trovare una corrispondenza del modello quando si richiama
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 di test MSTest | mstest |
[C#], F#, VB | Test/MSTest | 1.0 |
Classe di test MSTest | mstest-class |
[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 |
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 |
--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]
ediag[nostic]
. Disponibile a partire da .NET SDK 7.0.100.
Ogni modello può avere opzioni aggiuntive definite. Per altre informazioni, vedere modelli predefiniti .NET per dotnet new
.
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 l'SDK versione su 8.0.101:
dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
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
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: