本篇博客来了解一下dotnet这个神奇的命令。我会依次对dotnet,dotnet new,dotnet restore,dotnet build,dotnet test,dotnet run,dotnet pack,dotnet publish这些个命令的用法做个简单的介绍以及演示。

1、基本的信息命令

dotnet命令主要是用来查看一些基本的信息,如平台、版本号等。经常会用到的参数有–version,–info,–help,下面依次运行下看看输出

dotnet –version
1.0.-preview2-
dotnet –info
.NET Command Line Tools (1.0.-preview2-) Product Information:
Version: 1.0.-preview2-
Commit SHA- hash: 1e9d529bc5 Runtime Environment:
OS Name: Mac OS X
OS Version: 10.11
OS Platform: Darwin
RID: osx.10.11-x64
dotnet –help
.NET Command Line Tools (1.0.-preview2-)
Usage: dotnet [host-options] [command] [arguments] [common-options] Arguments:
[command] The command to execute
[arguments] Arguments to pass to the command
[host-options] Options specific to dotnet (host)
[common-options] Options common to all commands Common options:
-v|–verbose Enable verbose output
-h|–help Show help Host options (passed before the command):
-v|–verbose Enable verbose output
–version Display .NET CLI Version Number
–info Display .NET CLI Info Common Commands:
new Initialize a basic .NET project
restore Restore dependencies specified in the .NET project
build Builds a .NET project
publish Publishes a .NET project for deployment (including the runtime)
run Compiles and immediately executes a .NET project
test Runs unit tests using the test runner specified in the project
pack Creates a NuGet package

2、dotnet new

dotnet new命令用来创建一个.net core项目,该命令包含两个选项,分别是-t(或–type)和-l(或-lang),用来指定项目类型和编程语言。

-l, –lang [C#|F#] 
-l的默认值是c#,也可以设置为f#。VB的话应该很快就能支持了。

-t, –type [console|web|lib|xunittest] 
-t的默认值是concole,控制台项目。其它几个参数分别代表web项目,类库项目和测试项目。例如:dotnet new命令会创建一个控制台项目,dotnet new -t web会创建一个web项目(asp.NET mvc)。

3、dotnet restore

dotnet restore [–source] [–packages] [–disable-parallel] [–fallbacksource] [–configfile] [–verbosity] [] 

dotnet restore命令通过NuGet来下载定义在project.json文件中的依赖,然后放到用户目录下的.nuget/packages文件夹中。默认情况下,下载依赖组建的过程是并行进行的。 
–packages选项可以指定存放已下载组件的位置,默认是用户目录下的.nuget/packages文件夹。 
–disable-parallel选项用来禁用并行下载。 
–configfile选项用来指定使用哪个NuGet.config文件。 
dotnet restore命令运行完毕后,会生成project.lock.json文件。

4、dotnet build

dotnet build [–output] [–build-base-path] [–framework] [–configuration] [–runtime] [–version-suffix] 
[–build-profile] [–no-incremental] [–no-dependencies] [] 
dotnet build命令将项目中的所有源代码文件和依赖的组件编译为二进制的dll文件。该命令会读取project.lock.json,如果项目中找不到该文件,则需要先运行dotnet restore命令。 
执行完dotnet build命令后,会在bin/Debug/netcoreapp1.0文件夹下生成.dll文件和.pbd文件等,例如:

bash-3.2$ ls -al bin/Debug/netcoreapp1./
total
drwxr-xr-x jingjing staff : .
drwxr-xr-x jingjing staff : ..
-rw-r–r–@ jingjing staff : .DS_Store
-rwxr–r– jingjing staff : app.deps.json
-rwxr–r– jingjing staff : app.dll
-rwxr–r– jingjing staff : app.pdb
-rwxr–r– jingjing staff : app.runtimeconfig.dev.json
-rwxr–r– jingjing staff : app.runtimeconfig.json
-rwxr–r– jingjing staff : library.dll
-rwxr–r– jingjing staff : library.pdb
drwxr-xr-x jingjing staff : publish

5、dotnet test

dotnet test [–configuration] [–output] [–build-base-path] [–framework] [–runtime] [–no-build] [–parentProcessId] 
[–port] [] 
dotnet test命令用来运行单元测试项目中的测试代码,单元测试项目需要依赖一个单元测试框架(如nunit或xunit)以及对应的单元测试运行器,单元测试运行器在project.json文件中通过testRunner节点来指定。下面是一个使用xunit作为单元测试框架的项目的project.json文件

{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-192208-24"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}

其中,”testRunner”: “xunit”指明了需要的单元测试运行器。

6、dotnet run

dotnet run [–framework] [–configuration] [–project] [–help] [–] 
dotnet run命令是一个比较便捷的运行代码的命令。它会编译代码,输出信息,并运行代码。

7、dotnet pack

dotnet pack [–output] [–no-build] [–build-base-path] [–configuration] [–version-suffix] [] 
dotnet pack命令编译代码并生成一个NuGet包,具体来说就是在bin\Debug目录下生成一个.nupkg文件和一个.symbols.nupkg文件。

8、dotnet publish

dotnet publish [–framework] [–runtime] [–build-base-path] [–output] [–version-suffix] [–configuration] [] 
dotnet publish命令会编译代码,然后读取project.json文件中定义的所有依赖组件,最后将这些东西输出到一个文件夹中。生成的文件默认会输出到\bin\Debug\netcoreapp1.0\publish中,你可以通过-o或–output选项来修改输出位置。当你需要发布你的代码时,该命令的输出文件将是你所需要的全部文件。

【先定一个小目标】dotnet core 命令详解的更多相关文章

  1. 先定一个小目标,自己封装个ajax

    你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...

  2. 先定一个小目标:10天自学C语言编程,教你如何改变一生

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  3. 【先定一个小目标】Asp.net Core 在IIS上的托管运行

    1.安装 .NET Core Framework 下载.net core地址:官网地址 2.Install IIS 在控制面板->程序与功能->Internet Infomation Se ...

  4. 【先定一个小目标】怎么解决mysql不允许远程连接的错误

    最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to ...

  5. 【先定一个小目标】windows下安装RabbitMQ消息服务器

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. 1:安装RabbitMQ 需要先安装Erlang语言开发包.下载地址  ...

  6. 【先定一个小目标】Windows下安装MongoDB 3.2

    1.MongoDB 安装 官网提供了三个版本下载: - MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , ...

  7. 【先定一个小目标】在Windows下的安装Elasticsearch

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  8. 【先定一个小目标】Windows下Redis的安装使用

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  9. 【先定一个小目标】Ubuntu 16.04 搭建 zookeeper

    ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...

随机推荐

  1. PHP 按位与或 (^ 、&)

    今天朋友群里朋友问了下 按位与或的问题.. 按位于主要是对二进制数操作. <?php $a = 1; $b = 2; $c = $a^b; ?> 这里不是单纯的相加关系 十进制 1换算成二 ...

  2. JavaScript-创建第一个自己的类库

    通过上一节面向对象和原型的学习. 我们知道了怎样创建一个类,包含类的私有化属性和方法.公有化属性和方法.静态属性和方法.在这里略微回想一下.首先要创建一个类能够通过1.new object().2.利 ...

  3. ImageViewCoverflow

    https://github.com/Bertlk/ImageViewCoverflow https://github.com/dolphinwang/ImageCoverFlow http://ww ...

  4. HashMap与HashTable的区别?

    HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vect ...

  5. C项目实践--学生成绩管理系统

    1.功能需求分析 学生成绩管理系统是对学生基本信息及成绩的管理.本程序主要实现了对学生的学号.姓名等基本信息以及各项学科成绩进行增加.删除.修改.查询和保存到磁盘文件等操作.主要功能描述如下: (1) ...

  6. MYSQL之数据库初窥

    mysql数据库 1.数据库简单介绍    数据库概念:是依照数据结构来组织.存储和管理数据的仓库. 2.经常使用术语    数据库:是一些关联表的集合    数据表:表是数据的矩阵,在数据库中看起来 ...

  7. 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)

    原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...

  8. bzoj3330: [BeiJing2013]分数

    口胡 题目hint都给你是一个三分函数了 还不会上三分套三分吗 exp函数又卡 精度又卡 什么sb毒瘤题 浪费时间

  9. caioj1275&&hdu4035: 概率期望值6:迷宫

    期望的大难题,%%ZZZ大佬的解释,不得不说这是一道好题(然而膜题解都没完全看懂,然后就去烦ZZZ大佬) 简单补充几句吧,tmp的理解是个难点,除以tmp的原因是,当我们化简时,子节点也有一个B*f[ ...

  10. 并不对劲的loj2179:p3714:[BJOI2017]树的难题

    题目大意 有一棵树,\(n\)(\(n\leq2*10^5\))个点,每条边\(i\)有颜色\(w_i\),共有\(m\)(\(m\leq n\))种颜色,第\(i\)种颜色的权值是\(c_i\)(\ ...