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

上一篇简要介绍了 .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

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

new-console

还原(dotnet restore和dotnet pack)

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

dotnet new classlib

new-clb

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

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
restore

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

app.csproj中添加如下内容:

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

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

dotnet restore -s + 包的路径

restoreb

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

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 即编译当前目录下的代码文件为可执行程序

build

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Docker Swarm学习笔记(二)

搭建基础环境 官方文档中演示时用到了五台主机/虚拟机; ? 这里因为资源有限,只用三台; ? 创建虚拟机(可以用主机,也可以用虚拟机); 安装Ubuntu 16...

29870
来自专栏跟着阿笨一起玩NET

异常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项

常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项

91420
来自专栏Ryan Miao

Nginx代理proxy pass配置去除前缀

比如,访问abc.com/appv2/a/b.html, 要求转发到localhost:8088/appv2/a/b.html

40020
来自专栏杂七杂八

Anaconda安装与初步使用

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本...

54250
来自专栏accesshub

用户远程接入腾讯云VPC

       在管理控制台的部署容器页面,点击复制用户接入容器运行命令,在服务器上粘贴执行

19040
来自专栏架构说

Mesos+Zookeeper+Marathon管理Docker(1)

.服务器信息:物理机10.1.44.35上的KVM虚拟机 名称IP服务单点10.1.44.69Mesos\Marathon\Deimos\Zookeeper\D...

36370
来自专栏Java 源码分析

关于apache端口被占用

正文 无论我们在安装单个的apache还是装集成环境xampp都是有可能遇到apache意外停止。查看错误日志会发现一般都是端口被占用,一般是被虚拟机占用了,这...

43670
来自专栏编程坑太多

『中级篇』 容器之间的Link(27)

PS:用户自定义的bridge 和 docker0 这个bridge他们之前的区别,docker0 如果通过名称想找到需要通过link,实际的项目中很少使用li...

7810
来自专栏周奇的专栏

tungsten replicator:数据迁移利器【mysql 数据同步到 mongodb】

tungsten-replicator 是一款开源的、高性能、跨数据库系统的复制引擎,可用作多种场景下的数据迁移组件。本文尝试利用该工具实现 mysql 数据到...

1.6K00
来自专栏Laoqi's Linux运维专列

安装配置kibana+logstash

18620

扫码关注云+社区

领取腾讯云代金券