.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中的项目模板及其简写。
我们先来创建一个简单的控制台应用程序,也就是console
。
还原(dotnet restore和dotnet pack)
再来创建一个class lib
也就是类库,让前面创建的控制台程序来调用这个类库。
dotnet new classlib
现在为创建好的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
完成打包后,将applib
添加到console_app
的app.csproj
中。
在app.csproj
中添加如下内容:
添加后之前切换到console_app
目录,执行指令,将CLB包含到项目中。
dotnet restore -s C:dotnetapp_clbbinDebug
即dotnet restore -s + 包的路径
然后就能直接在项目中调用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
即编译当前目录下的代码文件为可执行程序
而dotnet run
则是允许已经编译好的可执行程序
同时,dotnet app.dll
也是执行程序。
测试(dotnet test)
新建一个文件夹及项目
dotnet new xunit
新建好后直接添加测试方法,运行测试,这里直接运行测试
dotnet restore
dotnet test
发布(dotnet publish)
dotnet core是跨平台的开发平台,所以发布的软件当然是具有跨平台运行的能力的。
先添加节点,打开console_app1.csproj
在PropertyGroup
节点中加入:
<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
- [WCF安全系列]绑定、安全模式与客户端凭证类型:NetNamedPipeBinding、NetTcpBinding与NetMsmqBinding
- 操作系统级虚拟化概述
- 让javascript中的异步请求同步起来
- [WCF REST] WebHttpBinding与消息编码
- React 概要
- [WCF REST] UriTemplate、UriTemplateTable与WebHttpDispatchOperationSelector
- [WCF REST] WebServiceHost有何特别之处?
- OSX SIP机制的“那些事”
- [WCF REST] 帮助页面与自动消息格式(JSON/XML)选择
- WCF服务端运行时架构体系详解[下篇]
- python和C语言混编的几种方式
- 通过“四大行为”对WCF的扩展[实例篇]
- 古中国数学家的计算力真是惊人
- 基于Apache Spark机器学习的客户流失预测
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法