dotnet new-<VORLAGE>

Dieser Artikel gilt für: ✔️ .NET Core 3.1 SDK und höher

Name

dotnet new: Erstellt ein neues Projekt, eine Konfigurationsdatei oder eine Lösung auf Grundlage der angegebenen Vorlage.

Übersicht

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

Beschreibung

Der Befehl dotnet new erstellt ein .NET-Projekt oder andere Artefakte auf Grundlage einer Vorlage.

Der Befehl ruft die Vorlagen-Engine zum Erstellen der Elemente auf dem Datenträger auf, die auf der angegebenen Vorlage und den Optionen basieren.

Hinweis

Ab .NET 7 SDK hat sich die Syntax von dotnet new geändert:

  • Die Optionen --list, --search, --install und --uninstall wurden zu den Unterbefehlen list, search, install und uninstall.
  • Die Option --update-apply wurde zum Unterbefehl update.
  • Um --update-check zu verwenden, verwenden Sie den Unterbefehl update mit der Option --check-only.

Andere Optionen, die zuvor verfügbar waren, können weiterhin mit ihren jeweiligen Unterbefehlen verwendet werden. Gesonderte Hilfe für jeden Unterbefehl ist über die Option -h oder --help verfügbar: dotnet new <subcommand> --help listet alle unterstützten Optionen für den Unterbefehl auf.

Darüber hinaus ist die Vervollständigung mit der TAB-TASTE jetzt für dotnet new verfügbar. Es unterstützt die Vervollständigung für installierte Vorlagennamen und für die Optionen, die eine ausgewählte Vorlage bereitstellt. Informationen zum Aktivieren der Vervollständigung mit der TAB-TASTE für das .NET SDK finden Sie unter Aktivieren der Vervollständigung mit der TAB-TASTE.

Registerkartenvervollständigung

Ab .NET SDK 7.0.100 ist die Vervollständigung mit der TAB-TASTE für dotnet new verfügbar. Dies unterstützt die Vervollständigung für installierte Vorlagennamen und für die Optionen, die eine ausgewählte Vorlage bereitstellt. Informationen zum Aktivieren der Vervollständigung mit der TAB-TASTE für das .NET SDK finden Sie unter Aktivieren der Vervollständigung mit der TAB-TASTE.

Implizite Wiederherstellung

Sie müssen dotnet restore nicht ausführen, da der Befehl implizit von allen Befehlen ausgeführt wird, die eine Wiederherstellung erfordern. Zu diesen zählen z. B. dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish und dotnet pack. Verwenden Sie die Option --no-restore, um die implizite Wiederherstellung zu deaktivieren.

In bestimmten Fällen eignet sich der dotnet restore-Befehl dennoch. Dies ist etwa bei Szenarios der Fall, in denen die explizite Wiederherstellung sinnvoll ist. Beispiele hierfür sind Continuous Integration-Builds in Azure DevOps Services oder Buildsysteme, die den Zeitpunkt für die Wiederherstellung explizit steuern müssen.

Informationen zum Verwalten von NuGet-Feeds finden Sie in der dotnet restoreDokumentation.

Argumente

  • TEMPLATE

    Die Vorlage, die instanziiert werden soll, wenn der Befehl aufgerufen wird. Jede Vorlage verfügt möglicherweise über bestimmte Optionen, die Sie übergeben können. Weitere Informationen finden Sie unter Vorlagenoptionen.

    Sie können dotnet new list ausführen, um eine Liste aller installierten Vorlagen anzuzeigen.

    Ab .NET Core 3.0 SDK bis .NET SDK 5.0.300 sucht die CLI auf NuGet.org nach Vorlagen, wenn Sie den Befehl dotnet new unter den folgenden Bedingungen aufrufen:

    • Wenn die CLI beim Aufruf von dotnet new keine Übereinstimmung oder Teilübereinstimmung mit einer Vorlage finden kann.
    • Wenn eine neuere Version der Vorlage verfügbar ist. In diesem Fall wird das Projekt oder Artefakt erstellt, wobei die CLI Sie über eine aktualisierte Version der Vorlage warnt.

    Ab .NET SDK 5.0.300 sollte der search-Befehl verwendet werden, um in NuGet.org nach Vorlagen zu suchen.

Die folgende Tabelle zeigt die Vorlagen, die im Lieferumfang des .NET SDK enthalten sind. Die Standardsprache für die Vorlage wird in den Klammern angezeigt. Klicken Sie auf den Kurznamenlink, um die spezifischen Vorlagenoptionen einzusehen.

Vorlagen Kurzname Sprache Tags Eingeführt
Konsolenanwendung console [C#], F#, VB Common/Console 1.0
Klassenbibliothek classlib [C#], F#, VB Common/Library 1.0
WPF-Anwendung wpf [C#], VB Common/WPF 3.0 (5.0 für VB)
WPF-Klassenbibliothek wpflib [C#], VB Common/WPF 3.0 (5.0 für VB)
WPF-Benutzerdefinierte Steuerelementbibliothek wpfcustomcontrollib [C#], VB Common/WPF 3.0 (5.0 für VB)
Bibliothek mit WPF-Benutzersteuerelementen wpfusercontrollib [C#], VB Common/WPF 3.0 (5.0 für VB)
Windows Forms-Anwendung (WinForms) winforms [C#], VB Common/WinForms 3.0 (5.0 für VB)
Windows Forms-Klassenbibliothek (WinForms) winformslib [C#], VB Common/WinForms 3.0 (5.0 für VB)
Workerdienst worker [C#] Common/Worker/Web 3.0
Komponententestprojekt mstest [C#], F#, VB Test/MSTest 1.0
NUnit 3-Testprojekt nunit [C#], F#, VB Test/NUnit 2.1.400
NUnit 3-Testelement nunit-test [C#], F#, VB Test/NUnit 2.2
xUnit-Testprojekt xunit [C#], F#, VB Test/xUnit 1.0
Razor-Komponente razorcomponent [C#] Web/ASP.NET 3.0
Seite „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 Web App blazor [C#] Web/Blazor 8.0.100
BlazorWebAssembly Eigenständige App blazorwasm [C#] Web/Blazor//WebAssembly/PWA 3.1.300
ASP.NET Core leer web [C#], F# Web/Empty 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#] Web/MVC/Razor Pages 2.2, 2.0
Razor-Klassenbibliothek razorclasslib [C#] Web/Razor/Library/Razor Class Library 2.1
ASP.NET Core-Web-API webapi [C#], F# Web/Web-API/API/Dienst/WebAPI 1.0
ASP.NET Core-API webapiaot [C#] Web/Web-API/API/Dienst 8.0
ASP.NET Core-API-Controller apicontroller [C#] Web/ASP.NET 8.0
ASP.NET Core: gRPC-Dienst grpc [C#] Web/gRPC 3.0
dotnet: GITIGNORE-Datei gitignore Konfigurationen 3.0
global.json-Datei globaljson Konfigurationen 2.0
NuGet-Konfiguration nugetconfig Konfigurationen 1.0
Dotnet: Manifestdatei des lokalen Tools tool-manifest Konfigurationen 3.0
Web Config webconfig Konfigurationen 1.0
Projektmappendatei sln Lösung 1.0
Protokollpufferdatei proto Web/gRPC 3.0
EditorConfig-Datei editorconfig Config 6.0

Die folgende Tabelle enthält Vorlagen, die nicht mehr vorhanden sind und nicht mehr mit dem .NET SDK vorinstalliert sind. Klicken Sie auf den Kurznamenlink, um die spezifischen Vorlagenoptionen einzusehen.

Vorlagen Kurzname Sprache Tags Nicht mehr vorhanden seit
ASP.NET Core mit Angular angular [C#] Web/MVC/SPA 8.0
ASP.NET Core mit React.js react [C#] Web/MVC/SPA 8.0
Blazor Server-App blazorserver [C#] Web/Blazor 8.0
Leere Blazor-Server-App blazorserver-empty [C#] Web/Blazor 8.0
Leere BlazorWebAssembly-App blazorwasm-empty [C#] Web/Blazor/WebAssembly 8.0

Optionen

  • --dry-run

    Es wird eine Zusammenfassung dazu angezeigt, was passiert, wenn der jeweilige Befehl ausgeführt wird und sich eine Vorlagenerstellung ergibt. Verfügbar ab .NET Core 2.2 SDK.

  • --force

    Erzwingt das Generieren von Inhalt, auch wenn dadurch vorhandene Dateien geändert werden. Dies ist erforderlich, wenn die ausgewählte Vorlage vorhandene Dateien im Ausgabeverzeichnis überschreiben würde.

  • -?|-h|--help

    Druckt Hilfe für den Befehl. Kann für den dotnet new-Befehl selbst oder für jede Vorlage aufgerufen werden. Beispielsweise dotnet new mvc --help.

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

    Gibt die Sprache der zu erstellenden Vorlage an. Die akzeptierte Sprache variiert je nach Vorlage (siehe Standardwerte im Abschnitt Argumente). Für einige Vorlagen nicht gültig.

    Hinweis

    Einige Shells interpretieren # als Sonderzeichen. In diesen Fällen müssen Sie den Sprachparameterwert in Klammern setzen. Beispielsweise dotnet new console -lang "F#".

  • -n|--name <OUTPUT_NAME>

    Der Name für die erstellte Ausgabe. Wird kein Name angegeben , wird der Name des aktuellen Verzeichnisses verwendet.

  • -f|--framework <FRAMEWORK>

    Gibt das Zielframework an. Es wird ein Zielframeworkmoniker (Target Framework Moniker, TFM) erwartet. Beispiele: „net6.0“, „net7.0-macos“. Dieser Wert ist in der Projektdatei enthalten.

  • -no-update-check

    Deaktiviert die Suche nach Vorlagenpaketupdates beim Instanziieren einer Vorlage. Verfügbar seit .NET SDK 6.0.100. Beim Instanziieren der Vorlage aus einem Vorlagenpaket, das mithilfe von dotnet new --install installiert wurde, überprüft dotnet new, ob ein Update für die Vorlage vorhanden ist. Ab .NET 6 werden für .NET-Standardvorlagen keine Überprüfungen auf Updates durchgeführt. Installieren Sie zum Aktualisieren von .NET-Standardvorlagen die Patchversion des .NET SDK.

  • -o|--output <OUTPUT_DIRECTORY>

    Speicherort für die generierte Ausgabe. Der Standardwert ist das aktuelle Verzeichnis.

  • --project <PROJECT_PATH>

    Das Projekt, dem die Vorlage hinzugefügt wird. Dieses Projekt wird für die Kontextauswertung verwendet. Wenn nicht angegeben, wird das Projekt im aktuellen Verzeichnis oder in übergeordneten Verzeichnissen verwendet. Verfügbar seit .NET SDK 7.0.100.

  • -d|--diagnostics

    Ermöglicht die diagnostische Ausgabe. Verfügbar seit .NET SDK 7.0.100.

  • -v|--verbosity <LEVEL>

    Legt den Ausführlichkeitsgrad für den Befehl fest. Zulässige Werte sind q[uiet], m[inimal], n[ormal] und diag[nostic]. Verfügbar seit .NET SDK 7.0.100.

Vorlagenoptionen

Für jede Vorlage können zusätzliche Optionen definiert sein. Weitere Informationen finden Sie unter .NET-Standardvorlagen für dotnet new.

Beispiele

  • Erstellen Sie ein neues C#-Konsolenanwendungsprojekt:

    dotnet new console
    
  • Erstellen Sie ein F#-Konsolenanwendungsprojekt im aktuellen Verzeichnis:

    dotnet new console --language "F#"
    
  • Erstellen Sie im angegebenen Verzeichnis ein .NET Standard 2.0-Klassenbibliotheksprojekt:

    dotnet new classlib --framework "netstandard2.0" -o MyLibrary
    
  • Erstellen Sie ein neues ASP.NET Core C# MVC-Projekt im aktuellen Verzeichnis ohne Authentifizierung:

    dotnet new mvc -au None
    
  • Erstellen Sie ein neues xUnit-Projekt:

    dotnet new xunit
    
  • Erstellen Sie eine global.json im aktuellen Verzeichnis, in dem die SDK-Version auf 8.0.101 festgelegt ist:

    dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
    
  • Anzeigen von Hilfe für die C#-Konsolenanwendungsvorlage:

    dotnet new console -h
    
  • Anzeigen von Hilfe für die F#-Konsolenanwendungsvorlage:

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

Siehe auch