.net core 2.0学习笔记(二):Hello World & 进阶
官网已经有一个.net core的入手教程(https://www.microsoft.com/net/core#windowscmd),但这个教程完全没有顾及全宇宙第一IDE的感受。今天就跟大家体验一下在VS2017上开发.net core程序吧。VS2017开发环境的搭建请参考:http://www.cnblogs.com/vveiliang/p/7380260.html。
打开VS2017的新建项目面板,可以看到有两个新的分类:.Net Core和.Net Standard。
.Net Core下的工程还比较好理解,但是.Net Standard是怎么回事呢?下面看一张.net 架构图,可以帮助我们理解这个事情。简言之:.Net Standard是一组所有.Net平台( .NET Framework,.NET Core,和 Xamarin )都要实现的契约定义。 对于开发者而言,只需要掌握一种基础类库即可,当开发者在新的平台下开发应用时,将不再需要学习新的API知识。 这意味着,以 .NET Standard 作为目标平台的类库将可以在所有 .NET 所有平台上运行。具体信息可参考:https://zhuanlan.zhihu.com/p/24267356
(一)生成.net core的"Hello World!"解决方案
在VS2017的新建项目面板中,选择“控制台应用(.Net Core)”.数据项目名称,并点击下方的确定后,程序创建完成。
在自动生成的代码中,加入: Console.ReadLine(); 。然后点击键盘上的“F5”键,执行运行。
OK,我们的第一个程序就这样编写完成,并运行起来,非常的简单。
(二)dotnet.exe
.net core程序虽已写完,但是打开任务管理器,我们却无法找到demo.exe这个程序,只看到dotnet.exe程序。为什么会这样呢?这要从.net core的设计说起,给大家留个作业,自己找答案吧。
打开Demo程序编译后的目录,发现里面也没有exe文件。
怎样才能运行我们写的程序呢?其实很简单。打开 cmd,执行下面指令即可:dotnet "C:\Users\dell\Documents\visual studio 2017\Projects\Demo\Demo\bin\Debug\netcoreapp2.0\demo.dll"。其中dotnet是.Net Core的运行容器名,后面是我们自己开发的程序入口。更多指令请参考这里:http://www.cnblogs.com/linezero/p/dotnetcli.html
(三)带exe的.net core程序。
在项目上右键编辑demo.csproj,添加一行
<RuntimeIdentifier>win10-x64-corert</RuntimeIdentifier>
最终结果为:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifier>win10-x64-corert</RuntimeIdentifier>
<ApplicationIcon />
<StartupObject />
</PropertyGroup>
</Project>
说明:RuntimeIdentifier 用于标识程序编译时可生成的不同运行环境的程序版本。其值来自于:C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.platforms\2.0.0\runtime.json。
保存编辑信息,然后重新编译,可以在生成目录下看到win10-x64-corert目录,此目录已经生成了exe文件。通过此方法,我们可以一次性编译各种环境下的程序文件。如果想更多的了解RID(RuntimeIdentifier ),请参考:https://docs.microsoft.com/en-us/dotnet/core/rid-catalog。
.net core 2.0学习笔记(二):Hello World & 进阶的更多相关文章
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建
作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...
- .net core 2.0学习笔记(一):开发运行环境搭建
期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...
- net core 2.0学习笔记(一):开发运行环境搭建 (转)
期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...
- .net core 2.0学习笔记(五):程序配置&ConfigurationManager
配置组件是.net framework中非常常用的功能.在创建.net framework 工程时,系统不仅会自动生成app.config文件,而且还提供了非常强大的访问类库.但是这些好东西,在.ne ...
- .net core 2.0学习笔记(二):部署到Windows和Liunx系统
.Net Core最大的亮点就是跨平台了,下面介绍下在Windows下和Liunx下的部署. 首先发布项目文件,点击网站项目右键 发布: 从下图发布的文件图片可以看出,不像以前bin目录下有很多dll ...
- .net core 2.0学习笔记(四):迁移.net framework 工程到.net core
在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...
- .net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移
在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确 ...
- .net core 2.0学习笔记(三):度量.net framework 迁移到.net core的工作量
把现有的.net framework程序迁移到.net core上,是一个非常复杂的工作,特别是一些API在两个平台上还不能同时支持.两个类库的差异性,通过人工很难识别全.好在微软的工程师们考虑到了我 ...
随机推荐
- accp8.0转换教材第6章连接MySQL理解与练习
JDBC_ODBC,纯java方式连接mysql 1.单词部分 ①JDBCjava连接数据库②driver manager驱动③connection连接④statement声明 ⑤execute执行⑥ ...
- 使用hexdump追踪FAT32文件系统中的一个文件
最近在看文件系统基础结构等知识,本来重点是想看EXT4文件系统,但是目前没有找到比较详细说明EXT4文件系统详细结构的,用EXT3的对应着找结果有点出入,在想是不是我用hexdump的参数有问题,于是 ...
- English - 被动语态的翻译原则
被动语态翻译原则 1. Passive ----> Active The bag is stolen by him. One the whole, such a conclusion can b ...
- OpenStack(企业私有云)万里长征第四步——DevStack整体安装规划及使用
一.前言 前期成功通过DevStack安装OpenStack,现将从机房规划到虚拟机搭建的整个过程总结如下,以供日后查阅或有需之人参考. 二.机房规划 这个整个安装过程的重点,能不能成功就看规划的如何 ...
- Jenkins+Git配置
Jenkins+Git配置 一.GitHub上配置 前提:Jenkins能正常打开 将本地文件上传到GitHub上:进入终端 cd Documents cd project git clone htt ...
- Android可更换布局的换肤方案
换肤,顾名思义,就是对应用中的视觉元素进行更新,呈现新的显示效果.一般来说,换肤的时候只是更新UI上使用的资源,如颜色,图片,字体等等.本文介绍一种笔者自己使用的基于布局的Android换肤方案,不仅 ...
- 为Dynamics 365写一个简单程序实现解决方案一键迁移
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 在linux环境下tomcat 指定 jdk或jre版本
最近在服务器上部署的服务出了点问题,后来查到是因为JDK版本太高了,程序识别不了,需要把JDK降级. 但是服务器上面跑的程序很多,又不能直接把环境变量改了,所以只能想着怎么把这个出问题的工程服务指定j ...
- [CF787D]遗产(Legacy)-线段树-优化Dijkstra(内含数据生成器)
Problem 遗产 题目大意 给出一个带权有向图,有三种操作: 1.u->v添加一条权值为w的边 2.区间[l,r]->v添加权值为w的边 3.v->区间[l,r]添加权值为w的边 ...
- 开发servlet三种方式
第一种:实现Servlet接口 ServletDemo类 实现Servlet接口 public class ServletDemo implements Servlet { //初始化该servlet ...