dotnet new <TEMPLATE>

Cet article s’applique à : ✔️ SDK .NET Core 3.1 et versions ultérieures

Nom

dotnet new : crée un projet, un fichier de configuration ou une solution en fonction du modèle spécifié.

Synopsis

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

La commande dotnet new crée un projet .NET ou d’autres artefacts basés sur un modèle.

La commande appelle le moteur de modèles pour créer les artefacts sur le disque en fonction du modèle et des options spécifiés.

Notes

À compter du SDK .NET 7, la syntaxe dotnet new a changé :

  • Les options --list, --search, --install et --uninstall sont devenues les sous-commandes list, search, install et uninstall.
  • L’option --update-apply est devenue la sous-commande update.
  • Pour utiliser --update-check, utilisez la sous-commande update avec l’option --check-only.

D’autres options disponibles avant sont toujours disponibles pour être utilisées avec leurs sous-commandes respectives. Une aide distincte pour chaque sous-commande est disponible via l’option -h ou l’option --help : dotnet new <subcommand> --help répertorie toutes les options prises en charge pour la sous-commande.

En outre, la saisie semi-automatique est désormais disponible pour dotnet new. Elle prend en charge la saisie semi-automatique pour les noms de modèles installés et pour les options fournies par le modèle sélectionné. Pour activer la saisie semi-automatique dans le SDK .NET, consultez Activer la saisie semi-automatique.

Saisie semi-automatique via la touche Tab

À compter du SDK .NET 7.0.100, la saisie semi-automatique est disponible pour dotnet new. Elle prend en charge la saisie semi-automatique pour les noms de modèles installés ainsi que pour les options fournies par le modèle sélectionné. Pour activer la saisie semi-automatique dans le SDK .NET, consultez Activer la saisie semi-automatique.

Restauration implicite

Vous n’avez pas besoin d’exécuter dotnet restore, car il est exécuté implicitement par toutes les commandes qui nécessitent une restauration pour se produire, comme dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish et dotnet pack. Pour désactiver la restauration implicite, utilisez l’option --no-restore .

La commande dotnet restore est toujours utile dans certains scénarios où la restauration explicite est logique, comme les builds d’intégration continue dans Azure DevOps Services ou dans les systèmes de génération qui doivent contrôler explicitement le moment où la restauration se produit.

Pour plus d’informations sur la gestion des flux NuGet, consultez la documentation dotnet restore.

Arguments

  • TEMPLATE

    Modèle à instancier quand la commande est appelée. Vous pouvez passer des options spécifiques pour chaque modèle. Pour plus d'informations, consultez Options de modèle.

    Vous pouvez exécuter dotnet new list pour afficher la liste de tous les modèles installés.

    À compter du SDK .NET Core 3.0 et jusqu’au SDK .NET 5.0.300, l’interface CLI recherche les modèles dans NuGet.org lorsque vous appelez la commande dotnet new dans les conditions suivantes :

    • Si l’interface CLI ne trouve pas de correspondance de modèle lors de l’appel dotnet new, pas même partielle.
    • S’il existe une version plus récente du modèle disponible. Dans ce cas, le projet ou l’artefact est créé, mais l’interface CLI vous avertit d’une version mise à jour du modèle.

    À compter du SDK .NET 5.0.300, la commande search doit être utilisée pour rechercher les modèles dans NuGet.org.

Le tableau suivant présente les modèles préinstallés avec le SDK .NET. Le langage par défaut pour le modèle est indiqué entre crochets. Cliquez sur le lien du nom court pour voir les options spécifiques au modèle.

Modèles Nom court Langage Étiquettes Introduit
Application console console [C#], F#, VB Communes/Console 1.0
Bibliothèque de classes classlib [C#], F#, VB Communes/Bibliothèque 1.0
Application WPF wpf [C#], VB Common/WPF 3.0 (5.0 pour VB)
Bibliothèque de classes WPF wpflib [C#], VB Common/WPF 3.0 (5.0 pour VB)
Bibliothèque de contrôles personnalisés WPF wpfcustomcontrollib [C#], VB Common/WPF 3.0 (5.0 pour VB)
Bibliothèque de contrôles utilisateur WPF wpfusercontrollib [C#], VB Common/WPF 3.0 (5.0 pour VB)
Application Windows Forms (WinForms) winforms [C#], VB Common/WinForms 3.0 (5.0 pour VB)
Bibliothèque de classes Windows Forms (WinForms) winformslib [C#], VB Common/WinForms 3.0 (5.0 pour VB)
Service Worker worker [C#] Common/Worker/Web 3.0
Projet de test unitaire mstest [C#], F#, VB Test/MSTest 1.0
Projet de test NUnit 3 nunit [C#], F#, VB Test/NUnit 2.1.400
Élément de test NUnit 3 nunit-test [C#], F#, VB Test/NUnit 2.2
Projet de test xUnit xunit [C#], F#, VB Test/xUnit 1.0
Razor composants razorcomponent [C#] Web/ASP.NET 3.0
Page Razor page [C#] Web/ASP.NET 2.0
ViewImports MVC viewimports [C#] Web/ASP.NET 2.0
ViewStart MVC viewstart [C#] Web/ASP.NET 2.0
Application webBlazor blazor [C#] Web/Blazor 8.0.100
BlazorWebAssembly Application autonome blazorwasm [C#] Web/BlazorWebAssemblyPWA 3.1.300
ASP.NET Core vide web [C#], F# Web/vides 1.0
Application web ASP.NET Core (Model-View-Controller) mvc [C#], F# Web/MVC 1.0
Application web ASP.NET Core webapp, razor [C#] Web/MVC/Razor Pages 2.2, 2.0
Bibliothèque de classes Razor razorclasslib [C#] Web/Razor/Library/Bibliothèque de classes Razor 2.1
API web ASP.NET Core webapi [C#], F# Web/Web API/API/Service/WebAPI 1.0
API ASP.NET Core webapiaot [C#] Web/Web API/API/Service 8.0
contrôleur d’API core ASP.NET apicontroller [C#] Web/ASP.NET 8.0
Service gRPC ASP.NET Core grpc [C#] Web/gRPC 3.0
fichier dotnet gitignore gitignore Config 3.0
fichier global.json globaljson Config 2.0
Configuration NuGet nugetconfig Config 1.0
Fichier manifeste de l’outil local Dotnet tool-manifest Config 3.0
Configuration Web webconfig Config 1.0
Fichier solution sln Solution 1.0
Fichier tampon de protocole proto Web/gRPC 3.0
Fichier EditorConfig editorconfig Config 6.0

Le tableau suivant présente les modèles qui ont été supprimés et qui ne sont plus préinstallés avec le Kit de développement logiciel (SDK) .NET. Cliquez sur le lien du nom court pour voir les options spécifiques au modèle.

Modèles Nom court Langage Balises Arrêté depuis
ASP.NET Core avec Angular angular [C#] Web/MVC/SPA 8.0
ASP.NET Core avec React.js react [C#] Web/MVC/SPA 8.0
Blazor Application serveur blazorserver [C#] Web/Blazor 8.0
Blazor Application serveur vide blazorserver-empty [C#] Web/Blazor 8.0
BlazorWebAssembly Application vide blazorwasm-empty [C#] Web/Blazor/WebAssembly 8.0

Options

  • --dry-run

    Affiche un récapitulatif de ce qui se passerait si la commande donnée était exécutée (si cela donnerait lieu à la création d’un modèle). Disponible à partir du SDK .NET Core 2.2.

  • --force

    Force le contenu à être généré même s’il change les fichiers existants. Ceci est nécessaire lorsque le modèle choisi remplace les fichiers existants dans le répertoire de sortie.

  • -?|-h|--help

    Affiche l’aide pour la commande. Elle peut être appelée pour la commande dotnet new elle-même ou pour n’importe quel modèle. Par exemple : dotnet new mvc --help.

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

    Langage du modèle à créer. Le langage accepté diffère selon le modèle (voir les valeurs par défaut dans la section arguments). Non valide pour certains modèles.

    Notes

    Certains interpréteurs interprètent la commande # comme un caractère spécial. Dans ces cas, placez la valeur du paramètre de langage entre guillemets. Par exemple : dotnet new console -lang "F#".

  • -n|--name <OUTPUT_NAME>

    Le nom de la sortie créée. Si aucun nom n’est spécifié, le nom du répertoire actif est utilisé.

  • -f|--framework <FRAMEWORK>

    Spécifie le framework cible. Elle attend un moniker de framework cible. Exemples : « net6.0 », « net7.0-macos ». Cette valeur est reflétée dans le fichier projet.

  • -no-update-check

    Désactive la vérification des mises à jour du package de modèle lors de l’instanciation d’un modèle. Disponible depuis .NET SDK 6.0.100. Lors de l’instanciation du modèle à partir d’un package de modèle installé à l’aide de dotnet new --install, dotnet new vérifie s’il existe une mise à jour pour le modèle. À compter de .NET 6, aucune vérification des mises à jour n’est effectuée pour les modèles .NET par défaut. Pour mettre à jour les modèles .NET par défaut, installez la version corrective du SDK .NET.

  • -o|--output <OUTPUT_DIRECTORY>

    Emplacement où placer la sortie générée. L'emplacement par défaut est le répertoire actif.

  • --project <PROJECT_PATH>

    Projet auquel le modèle est ajouté. Ce projet est utilisé pour l’évaluation du contexte. S’il n’est pas spécifié, le projet dans les répertoires actuels ou parents est utilisé. Disponible depuis .NET SDK 7.0.100.

  • -d|--diagnostics

    Active la sortie de diagnostic. Disponible depuis .NET SDK 7.0.100.

  • -v|--verbosity <LEVEL>

    Définit le niveau de détail de la commande. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal] et diag[nostic]. Disponible depuis .NET SDK 7.0.100.

Options de modèle

Chaque modèle peut avoir des options supplémentaires définies. Pour plus d’informations, consultez Modèles .NET par défaut pour dotnet new.

Exemples

  • Créez un projet d’application console C# :

    dotnet new console
    
  • Créez un projet d’application console F# dans le répertoire actif :

    dotnet new console --language "F#"
    
  • Créez un projet de bibliothèque de classes .NET Standard 2.0 dans le répertoire spécifié :

    dotnet new classlib --framework "netstandard2.0" -o MyLibrary
    
  • Créez un projet ASP.NET Core C# MVC dans le répertoire actif sans authentification :

    dotnet new mvc -au None
    
  • Créez un projet xUnit :

    dotnet new xunit
    
  • Créez un global.json dans le répertoire actif définissant la version du Kit de développement logiciel (SDK) sur 8.0.101 :

    dotnet new globaljson --sdk-version 8.0.101
    
  • Affichez l’aide pour le modèle d’application console C# :

    dotnet new console -h
    
  • Affichez l’aide pour le modèle d’application console F# :

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

Voir aussi