
2.4 命令行
2.4.1 dotnet命令介绍
dotnet命令是开发.NET Core应用程序的一个新的跨平台工具链的基础。它是跨平台的,并且对支持的每个平台有相同的表现范围。这意味着,当学会如何使用dotnet命令后,可以从任何支持的平台上以同样的方式使用它。安装好.NET Core SDK后就可以使用dotnet命令了。
dotnet命令如表2-4所示。
表2-4

项目修改命令如表2-5所示。
表2-5

高级命令如表2-6所示。
表2-6

工具管理命令如表2-7所示。
表2-7

简单示例如下。
初始化.NET Core控制台应用程序:

生成给定目录中的项目及其依赖项:

运行名为myapp.dll的依赖于框架的应用:

2.4.2 dotnet命令实战
下面通过实例串起dotnet常用命令。
1.创建(dotnet new)
首先创建一个项目,这里创建一个控制台程序,命令如图2-3所示。

图2-3
dotnet new的更多参数可以参考帮助dotnet new-h。
2.打包(dotnet pack)
接着创建一个classlib,也就是类库,命令如图2-4所示。

图2-4
创建好以后,编写一些自己的代码然后进行打包,替换Class1.cs如下:

这里增加一个属性和方法,然后打包,如图2-5所示。

图2-5
打好包以后,将applib添加到app的app.csproj中。
在app.csproj中添加如下代码:

添加好以后切换到app目录,进行还原。使用的命令是:dotnet restore-s D:\dotnet\applib\bin\Debug\,即dotnet restore-s包的路径。
这样就能在app项目中调用applib里面的方法和属性了。
在app项目的Program.cs中编写对应的调用:

然后执行程序,可以看到正确输出applib的结果。
3.运行(dotnet build及dotnet run)
以app为例,用dotnet build编译代码,然后用dotnet run运行程序,如图2-6所示。

图2-6
dotnet run默认执行dotnet build,也可以直接使用dotnet run命令。
在bin\Debug\netcoreapp3.1目录下执行dotnet app.dll,也可以运行程序。
4.测试(dotnet test)
新建测试项目dotnet new xunit-o apptest。
建好项目后,参照app引用applib,在UnitTest1.cs中添加测试方法:

执行如图2-7所示命令运行测试。

图2-7
5.发布(dotnet publish)
发布项目使其可以跨平台运行。
下面跨平台发布。
Win10 64位系统:

发布后可以直接定位到发布publish目录,执行app.exe即可。
Ubuntu 16.04 64位系统:

将ubuntu.16.04-x64\publish文件夹上传至Ubuntu系统,设置app的权限为可执行chmod 755 app,然后./app就可以运行。
dotnet publish-r指定系统ID,即可发布对应的系统应用。