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 Unterbefehlenlist
,search
,install
unduninstall
. - Die Option
--update-apply
wurde zum Unterbefehlupdate
. - Um
--update-check
zu verwenden, verwenden Sie den Unterbefehlupdate
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 restore
Dokumentation.
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.- Wenn die CLI beim Aufruf von
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. Beispielsweisedotnet 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. Beispielsweisedotnet 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üftdotnet 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]
unddiag[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