楠槡

.NET Core 实战笔记2-从命令开始

2017-11-27

上一篇简要介绍了 .NET Core平台,本篇对dotnet命令进行讲解。

.NET Core作为跨平台产品,不再只依赖于Windows的图形化界面系统,因而推出的dotnet命令 成为了开发 .NET Core应用程序的一个新的跨平台工具链的基础。因此,掌握dotnet命令之后,就可以在任何支持平台上使用同样的命令进行开发管理。

dotnet命令——从实际项目入手

dotnet的命令有很多,没有必要一一列举出来,对于开发人员来说,最好的记忆方式就是实践。

创建(dotnet new)

dotnet new 顾名思义,就是新建一个dotNet Core项目,dotnet core有很多类型的项目,因此,需要同时给new指令添加属性来新建制定模板的项目。如下图,使用dotnet new -h列出了dot net core中的项目模板及其简写。

dotnet new -h

我们先来创建一个简单的控制台应用程序,也就是console

dotnet new console

还原(dotnet restore和dotnet pack)

再来创建一个class lib也就是类库,让前面创建的控制台程序来调用这个类库。

dotnet new classlib

dotnet new classlib

现在为创建好的CLB的默认类Class1.cs添加两个方法,然后打包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
namespace app_clb
{
public class Class1
{
public void Printout()
{
System.Console.WriteLine("Class Lib Print!");
}
public string GetStr()
{
return "return lib";
}
}
}

打包需要两条指令:

  • dotnet restore
  • dotnet pack

dotnet restore

完成打包后,将applib添加到console_appapp.csproj中。

app.csproj中添加如下内容:

添加后之前切换到console_app目录,执行指令,将CLB包含到项目中。

dotnet restore -s C:\dotnet\app_clb\bin\Debug\

dotnet restore -s + 包的路径

restore

然后就能直接在项目中调用app_clb中的的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using app_clb;
namespace console_app1
{
class Program
{
static void Main(string[] args)
{
Class1 obj =new Class1();
obj.Printout();
System.Console.WriteLine(obj.GetStr());
System.Console.WriteLine("Hello World!");
}
}
}

运行(dotnet build和dotnet run)

dotnet build 即编译当前目录下的代码文件为可执行程序

dotnet build

dotnet run则是允许已经编译好的可执行程序

dotnet run

同时,dotnet app.dll也是执行程序。

测试(dotnet test)

新建一个文件夹及项目

dotnet new xunit

新建好后直接添加测试方法,运行测试,这里直接运行测试

dotnet restore

dotnet test

test

发布(dotnet publish)

dotnet core是跨平台的开发平台,所以发布的软件当然是具有跨平台运行的能力的。

先添加节点,打开console_app1.csprojPropertyGroup节点中加入:

<RuntimeIdentifiers>win10-x64;ubuntu.14.04-x64</RuntimeIdentifiers>

还原项目dotnet restore,然后发布

dotnet publish默认发布

dotnet publish -r win10-x64 发布配置信息中添加好的win10-x64

dotnet publish -r ubuntu.14.01-x64 发布配置信息中添加好的ubuntu

publish

Tags: dotNET
使用支付宝打赏
使用微信打赏

若你觉得我的文章对您有帮助,点击上方按钮请我喝杯咖啡☕

若文章中存在问题,或您有任何意见和疑问,均可与我联系

扫描二维码,分享此文章 📱