官网已经有一个.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 & 进阶的更多相关文章

  1. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

  2. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  3. .net core 2.0学习笔记(一):开发运行环境搭建

    期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...

  4. net core 2.0学习笔记(一):开发运行环境搭建 (转)

    期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...

  5. .net core 2.0学习笔记(五):程序配置&ConfigurationManager

    配置组件是.net framework中非常常用的功能.在创建.net framework 工程时,系统不仅会自动生成app.config文件,而且还提供了非常强大的访问类库.但是这些好东西,在.ne ...

  6. .net core 2.0学习笔记(二):部署到Windows和Liunx系统

    .Net Core最大的亮点就是跨平台了,下面介绍下在Windows下和Liunx下的部署. 首先发布项目文件,点击网站项目右键 发布: 从下图发布的文件图片可以看出,不像以前bin目录下有很多dll ...

  7. .net core 2.0学习笔记(四):迁移.net framework 工程到.net core

    在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...

  8. .net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移

    在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确 ...

  9. .net core 2.0学习笔记(三):度量.net framework 迁移到.net core的工作量

    把现有的.net framework程序迁移到.net core上,是一个非常复杂的工作,特别是一些API在两个平台上还不能同时支持.两个类库的差异性,通过人工很难识别全.好在微软的工程师们考虑到了我 ...

随机推荐

  1. MAC 相关操作解析

    MAC 相关操作解析 OS 显示桌面 f11 F1~F12 fn + F1~F12 撤销重做 command + z command + shift + z 图片预览 选择图片 空格 上下左右 svn ...

  2. 一张图告诉你angular2所有知识点

    忙活了半年,从angular2.0到现在angular4.2.从没AOT到有AOT.我想说,angular2的学习曲线真的有点陡峭.只能说,angular2是一个比较完整的框架,框架就是这样,一大堆条 ...

  3. 使用matplotlib绘制多轴图

    一个绘图对象(figure)可以包含多个轴(axis),在Matplotlib中用轴表示一个绘图区域,可以将其理解为子图.上面的第一个例子中,绘图对象只包括一个轴,因此只显示了一个轴(子图).我们可以 ...

  4. 读书共享 Primer Plus C-part 8

    第十三章 文件输入/输出 fopen--fclose fopen 是文件的操作的开始 fclose是文件操作的结束 getc--putc getchar--putchar getc对应文件的获取单个字 ...

  5. Chrome浏览器扩展开发系列之十一:NPAPI插件的使用

    在Chrome浏览器扩展中使用HTML和JavaScript非常容易,但是如何重用已有的非JavaScript遗留系统代码呢?答案是将NPAPI插件绑定到Chrome浏览器扩展,从而实现在Chrome ...

  6. HTML5性能优化[转]

    在看完这两章内容之后,我意犹未尽,于是乎从网上搜索关键字“Java Web高性能”,在IBM社区找到两篇不错的文章,而让人更意外的是我发现那两篇文章的内容跟<高性能HTML5>前两章高度相 ...

  7. JavaWeb 后端 <十二> 之 过滤器 filter 乱码、不缓存、脏话、标记、自动登录、全站压缩过滤器

    一.过滤器是什么?有什么? 1.过滤器属于Servlet规范,从2.3版本就开始有了. 2.过滤器就是对访问的内容进行筛选(拦截).利用过滤器对请求和响应进行过滤

  8. 1. MongoDB 安装和启动

    1. MongoDB是一个Document Database.A record in MongoDB is a document,MongoDB documents are similar to JS ...

  9. Phpcms 前台页面实现分页

    phpcms开发就是模仿里面原有的方法进行扩展,前台要实现分页,就去找后台页面的分页实现. 如后台 扩展->后台操作日志,就有分页展示. 1.先去添加自己的分页方法(千万不要在原来的方法上修改, ...

  10. Android - TabHost 与 Fragment 制作页面切换效果

    Android - TabHost 与 Fragment 制作页面切换效果 Android API 19 , API 23 三个标签页置于顶端 效果图: 在文件BoardTabHost.java中定义 ...