dotnet new <TEMPLATE>
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 dem .NET 7 SDK hat sich die dotnet new
Syntax geändert:
- Die
--list
Optionen ,--search
,--install
und--uninstall
wurden zulist
,search
undinstall
uninstall
zu Unterbefehlen. - Die
--update-apply
Option wurde zumupdate
Unterbefehl. - Um zu verwenden
--update-check
, verwenden Sie denupdate
Unterbefehl mit der--check-only
Option.
Andere Optionen, die zuvor verfügbar waren, können weiterhin mit ihren jeweiligen Unterbefehlen verwendet werden.
Separate Hilfe für jeden Unterbefehl ist über die -h
Option oder --help
verfügbar: dotnet new <subcommand> --help
Listet alle unterstützten Optionen für den Unterbefehl auf.
Darüber hinaus ist die Tabulatorabschlussung 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 bietet.
Informationen zum Aktivieren der Registerkartenvervollständigung für das .NET SDK finden Sie unter Aktivieren der Registerkartenvervollständigung.
Registerkartenvervollständigung
Ab .NET SDK 7.0.100 ist die Vervollständigung der Registerkarte für dotnet new
verfügbar. Es unterstützt die Vervollständigung für installierte Vorlagennamen sowie die Vervollständigung für die Optionen, die eine ausgewählte Vorlage bietet.
Informationen zum Aktivieren der Registerkartenvervollständigung für das .NET SDK finden Sie unter Aktivieren der Registerkartenvervollständigung.
Implizite Wiederherstellung
Sie müssen nicht ausführendotnet restore
, da sie implizit von allen Befehlen ausgeführt wird, für die eine Wiederherstellung erforderlich ist, zdotnet new
. B. , , dotnet build
, dotnet run
, dotnet test
und dotnet publish
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 zum .NET SDK 5.0.300 sucht die CLI nach Vorlagen in NuGet.org, wenn Sie den
dotnet new
Befehl 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.
- Wenn die CLI beim Aufruf von
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 Server-App | blazorserver |
[C#] | Web/Blazor | 3.0 |
BlazorWebAssembly App | blazorwasm |
[C#] | Web/Blazor/WebAssembly | 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 |
ASP.NET Core mit Angular | angular |
[C#] | Web/MVC/SPA | 2.0 |
ASP.NET Core mit React.js | react |
[C#] | Web/MVC/SPA | 2.0 |
ASP.NET Core mit React.js und Redux | reactredux |
[C#] | Web/MVC/SPA | 2.0 |
Razor-Klassenbibliothek | razorclasslib |
[C#] | Web/Razor/Library/Razor Class Library | 2.1 |
ASP.NET Core-Web-API | webapi |
[C#], F# | Web/WebAPI | 1.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 |
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 erwartet einen Zielframeworkmoniker (TFM). Beispiele: "net6.0", "net7.0-macos". Dieser Wert wird in der Projektdatei widerspiegelt.
-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 in den aktuellen oder ü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 im aktuellen Verzeichnis die Datei global.json, und legen Sie die SDK-Version auf 3.1.101 fest:
dotnet new globaljson --sdk-version 3.1.101
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