.NET Core 实战 [No.7~13] 命令行工具
开发时一般都是通过 Visual Studio 来创建和运行程序,不过了解一下常用 .NET Core 的命令行工具还是有必要的。特别是编译和运行命令,偶尔会使用到。
1. dotnet new
下面的命令会创建一个控制台项目,项目名默认和当前文件夹同相同。
bash
dotnet new console
通过 -n
参数可以指定新项目的名称。
bash
dotnet new console -n ProjectName
项目会自动在当前目录下的同名文件夹下。
bash
└─ProjectName
│ Program.cs
│ ProjectName.csproj
│
└─obj
project.assets.json
ProjectName.csproj.nuget.cache
ProjectName.csproj.nuget.dgspec.json
ProjectName.csproj.nuget.g.props
ProjectName.csproj.nuget.g.targets
通过 -o
参数可以指定新项目的存放位置。
bash
dotnet new console -o Sample
如果未通过 -n
参数指定项目名,则默认和项目存放位置相同。
bash
└─Sample
│ Program.cs
│ Sample.csproj
│
└─obj
project.assets.json
Sample.csproj.nuget.cache
Sample.csproj.nuget.dgspec.json
Sample.csproj.nuget.g.props
Sample.csproj.nuget.g.targets
通常 -o
和 -n
参数会同时使用。
2. dotnet build
该命令编译应用程序项目。
bash
dotnet build App1\App1.csproj
编译前的项目目录结构:
bash
└─App1
│ App1.csproj
│ Program.cs
│
└─obj
App1.csproj.nuget.cache
App1.csproj.nuget.dgspec.json
App1.csproj.nuget.g.props
App1.csproj.nuget.g.targets
project.assets.json
编译后的项目目录结构:
bash
└─App1
│ App1.csproj
│ Program.cs
│
├─bin
│ └─Debug
│ └─netcoreapp3.1
│ App1.deps.json
│ App1.dll
│ App1.exe
│ App1.pdb
│ App1.runtimeconfig.dev.json
│ App1.runtimeconfig.json
│
└─obj
│ App1.csproj.nuget.cache
│ App1.csproj.nuget.dgspec.json
│ App1.csproj.nuget.g.props
│ App1.csproj.nuget.g.targets
│ project.assets.json
│
└─Debug
└─netcoreapp3.1
App1.AssemblyInfo.cs
App1.AssemblyInfoInputs.cache
App1.assets.cache
App1.csproj.FileListAbsolute.txt
App1.csprojAssemblyReference.cache
App1.dll
App1.exe
App1.pdb
可以看出在 bin 和 obj 目录下都新增了 Debug 目录。
由于我的开发环境当前默认的 .NET Core 版本为 3.1,所以编译结果文件存放在 netcoreapp3.1 目录下。
通过添加 -c Release
参数可以编译项目的 Release 版本。
bash
dotnet build App1\App1.csproj -c Release
编译后在 bin 和 obj 目录下都新增了一个 Release 目录。
bash
└─App1
│ App1.csproj
│ Program.cs
│
├─bin
│ ├─Debug
│ │ └─netcoreapp3.1
│ │ App1.deps.json
│ │ App1.dll
│ │ App1.exe
│ │ App1.pdb
│ │ App1.runtimeconfig.dev.json
│ │ App1.runtimeconfig.json
│ │
│ └─Release
│ └─netcoreapp3.1
│ App1.deps.json
│ App1.dll
│ App1.exe
│ App1.pdb
│ App1.runtimeconfig.dev.json
│ App1.runtimeconfig.json
│
└─obj
│ App1.csproj.nuget.cache
│ App1.csproj.nuget.dgspec.json
│ App1.csproj.nuget.g.props
│ App1.csproj.nuget.g.targets
│ project.assets.json
│
├─Debug
│ └─netcoreapp3.1
│ App1.AssemblyInfo.cs
│ App1.AssemblyInfoInputs.cache
│ App1.assets.cache
│ App1.csproj.FileListAbsolute.txt
│ App1.csprojAssemblyReference.cache
│ App1.dll
│ App1.exe
│ App1.pdb
│
└─Release
└─netcoreapp3.1
App1.AssemblyInfo.cs
App1.AssemblyInfoInputs.cache
App1.assets.cache
App1.csproj.FileListAbsolute.txt
App1.csprojAssemblyReference.cache
App1.dll
App1.exe
App1.pdb
3. dotnet new sln
该命令创建解决方案文件,使用 -n
参数可以指定解决方案文件名。
bash
dotnet new sln -n Happy
dotnet sln add
使用 dotnet sln {SolutionName} add {ProjectName1} [{ProjectName2}]
命令将项目添加到解决方案中。
bash
dotnet sln Happy.sln add demo1\demo1.csproj demo2\demo2.csproj
执行后解决方案文件中会添加如下内容:
csharp
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "demo1", "demo1\demo1.csproj", "{E3B59553-1924-481B-9594-9D7C94473879}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "demo2", "demo2\demo2.csproj", "{98DBAA15-163C-4601-A678-038247B82862}"
EndProject
dotnet sln list
该命令可以查看解决方案中的项目列表。
bash
>dotnet sln list
项目
--
demo1\demo1.csproj
demo2\demo2.csproj
dotnet sln remove
该命令可以从解决方案中移除项目。
bash
dotnet sln remove demo1\demo1.csproj
4. dotnet
{.dll}
该命令可以运行指定的 dll 文件。
bash
>dotnet bin\Debug\netcoreapp3.1\ProjectName.dll
Hello World!
5. dotnet run
该命令运行当前目录下的项目。
bash
>dotnet run
Hello World!
参考:《.NET Core 实战:手把手教你掌握 380 个精彩案例》 -- 周家安 著