![ASP.NET Core项目开发实战入门](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/33692212/b_33692212.jpg)
2.4 命令行
2.4.1 dotnet命令介绍
dotnet命令是开发.NET Core应用程序的一个新的跨平台工具链的基础。它是跨平台的,并且对支持的每个平台有相同的表现范围。这意味着,当学会如何使用dotnet命令后,可以从任何支持的平台上以同样的方式使用它。安装好.NET Core SDK后就可以使用dotnet命令了。
dotnet命令如表2-4所示。
表2-4
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_22_2.jpg?sign=1738906054-GN1DAQNzF2xdKNysfXrh2I4SwS1fMrTV-0-38d898b83c5e578619aa339c3df1b1b9)
项目修改命令如表2-5所示。
表2-5
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_1.jpg?sign=1738906054-q0TBaaTGx0zfjfGP2UtQuYFlYGCWHdKI-0-abd358375e0ee5b5b7542bf8f6cccd2d)
高级命令如表2-6所示。
表2-6
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_2.jpg?sign=1738906054-4uyKPzR6GBX2Vq8xGg2M3JzIneAsGVrS-0-c085fd4163352e4fb166c377480aafd8)
工具管理命令如表2-7所示。
表2-7
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_3.jpg?sign=1738906054-I9ROPfEttF8Id0tlQLujlfEW9yH08Xie-0-0200ce3722752d6d49a830db5e410c5e)
简单示例如下。
初始化.NET Core控制台应用程序:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_4.jpg?sign=1738906054-J8tIurqZaW1fG65UpwtWbUk0epKqWcIv-0-292a647f5c6ba313a1e578e183b3361a)
生成给定目录中的项目及其依赖项:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_5.jpg?sign=1738906054-gxtWy21C91oLUdAEU4az1S3Ca0POTY6U-0-e9396324ecaca9a94ea6f7c21d310535)
运行名为myapp.dll的依赖于框架的应用:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_23_6.jpg?sign=1738906054-RwiQWsjOtAfeGL9odZCo8GowEdnNrxCC-0-6998a6375a1ec056443b635500f94f9e)
2.4.2 dotnet命令实战
下面通过实例串起dotnet常用命令。
1.创建(dotnet new)
首先创建一个项目,这里创建一个控制台程序,命令如图2-3所示。
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_24_1.jpg?sign=1738906054-hIkZ5fXevCaJjwvtDczUEwcoe5dvnvWK-0-43d84210483ed3e1440426609eeeaf61)
图2-3
dotnet new的更多参数可以参考帮助dotnet new-h。
2.打包(dotnet pack)
接着创建一个classlib,也就是类库,命令如图2-4所示。
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_24_2.jpg?sign=1738906054-zP2xDOmN8u11KBtJq4CsqRHNVsTr35zV-0-b68570ca918d38524bd626859e93cc83)
图2-4
创建好以后,编写一些自己的代码然后进行打包,替换Class1.cs如下:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_24_3.jpg?sign=1738906054-yupNPdm51l91L6Y2KPPR3NPOm9fJJwdc-0-973f0a43993d0c3bc77ccdf3e30a8e88)
这里增加一个属性和方法,然后打包,如图2-5所示。
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_24_4.jpg?sign=1738906054-0ikEBQxfdwJRrL5WxWRfH21KqhKYL8WL-0-ae5404cf72d0f69982e9c95a440528be)
图2-5
打好包以后,将applib添加到app的app.csproj中。
在app.csproj中添加如下代码:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_25_1.jpg?sign=1738906054-FAMMUlBzDud5tTikmF5F6C1Irsei9mry-0-0b6610a4508fd8bada1b611081a97914)
添加好以后切换到app目录,进行还原。使用的命令是:dotnet restore-s D:\dotnet\applib\bin\Debug\,即dotnet restore-s包的路径。
这样就能在app项目中调用applib里面的方法和属性了。
在app项目的Program.cs中编写对应的调用:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_25_2.jpg?sign=1738906054-lL1zUL4Vok1rJdwJtnCKd3ObeGNrFAM9-0-8bbabdc1b2d0b3672f06869aa7cf49ce)
然后执行程序,可以看到正确输出applib的结果。
3.运行(dotnet build及dotnet run)
以app为例,用dotnet build编译代码,然后用dotnet run运行程序,如图2-6所示。
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_25_3.jpg?sign=1738906054-Iiedrizfm6KdGKA2CxMDAD97YT5LL6X7-0-1abd85423520ed9bd8f3c3b1b5ec4404)
图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中添加测试方法:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_25_4.jpg?sign=1738906054-nefwz1ztjVWx27XOCZI9W5R0CNVUxm1s-0-11493106aa35cf80e8ac1f4cb30e7945)
执行如图2-7所示命令运行测试。
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_26_1.jpg?sign=1738906054-V558G6GeDzpzbaqrtWpGdjIJsxVy18tn-0-c58f0e3082736668fb4c9cfbd98487fa)
图2-7
5.发布(dotnet publish)
发布项目使其可以跨平台运行。
下面跨平台发布。
Win10 64位系统:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_26_2.jpg?sign=1738906054-BWg5CS6W3fzvBq9ChIqmXEE6qMFMdthD-0-d9231733967ed960b3c34d50b1c2b20a)
发布后可以直接定位到发布publish目录,执行app.exe即可。
Ubuntu 16.04 64位系统:
![](https://epubservercos.yuewen.com/18F5DB/18002370601923206/epubprivate/OEBPS/Images/39384_26_3.jpg?sign=1738906054-UDLzTbX1SKor9tjxSajIL1xW8aa9Jmf0-0-bcc079298a8bd1d1bfd27abfb736bf9e)
将ubuntu.16.04-x64\publish文件夹上传至Ubuntu系统,设置app的权限为可执行chmod 755 app,然后./app就可以运行。
dotnet publish-r指定系统ID,即可发布对应的系统应用。