dotnet new 命令用来初始化项目,也可以用来创建解决方案文件、Nuget 配置文件等。

dotnet new 根据指定的模板和选项调用模板引擎创建项目。目前 dotnet new 已经提供了非常多的模板,在终端中输入 dotnet new -l就会打印出支持的模板。

dotnet new 使用 -lang|--language 选项还可以指定项目的语言。

参数

TEMPLATE

初始化项目使用的模板。

下面列举的是一些常用的模板。

模板 简称 语言
Console Application console [C#], F#, VB
Class library classlib [C#], F#, VB
Unit Test Project mstest [C#], F#, VB
ASP.NET Core Empty web [C#], F#
ASP.NET Core Web App (Model-View-Controll) mvc [C#], F#
ASP.NET Core Web App razor [C#]
ASP.NET Core Web API webapi [C#], F#
Solution File sln -

当创建项目时,例如控制台应用,最简单的方法就是执行 dotnet new console命令。console 是上面表格中“简称”一列的内容。如果创建一个类库项目,那么 dotnet new 后面应该跟 classlib

// 创建控制台应用
dotnet new console
// 创建类库
dotnet new classlib

选项

-h|--help

打印帮助信息。

dotnet new 命令本身或模板都可以指定该选项。

// dotnet new 的帮助信息
dotnet new -h
// mvc 模板的帮助信息
dotnet new mvc -h

-n|--name <OUTPUT_NAME>

项目的名称。如果未指定,默认为当前目录的名称。

如果创建一个名为 demo 控制台项目,有两种方式。

// 不指定 -n 选项,默认使用当前目录的名称
mkdir demo && cd demo
dotnet new console
// 指定 -n 选项
dotnet new console -n demo

-o|--output <OUTPUT_DIRECTORY>

项目创建到的位置。

dotnet new console -o demo

注意 -o 和 -n 两者的区别。-o 是项目存放的位置,-n 是项目的名称。例如,创建一个名为 demo 的控制台项目,项目所在的目录为 proj。

dotnet new console -n demo -o proj

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

创建项目使用的语言。如果不指定,默认使用的是 C#。

// 创建一个使用 F# 的控制台应用
dotnet new console -lang F#

-l|--list

列出包含指定名称的模板。如果不指定,则会列出所有的模板。

// 列举所有的模板
dotnet new -l
// 列举包含 con 的模板
dotnet new con -l

--type

根据类型筛选模板。预定义的值有:project、item 和 other。

// 列举 item 类型的模板
dotnet new --type item

--force

强制创建。例如目录中已经包含了项目,可以使用该选项强制重写已有文件。

-i|--install <PATH|NUGET_ID>

安装模板。

可以自定义模板,通过文件系统或 NuGet 进行分发后,使用该选项进行安装。关于如何自定义模板,请参阅 https://docs.microsoft.com/en-us/dotnet/core/tutorials/create-custom-template

-u|--uninstall <PATH|NUGET_ID>

卸载模板。