.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。

Image(29)

     .Net Core下的工程还比较好理解,但是.Net Standard是怎么回事呢?下面看一张.net 架构图,可以帮助我们理解这个事情。简言之:.Net Standard是一组所有.Net平台( .NET Framework,.NET Core,和 Xamarin )都要实现的契约定义。 对于开发者而言,只需要掌握一种基础类库即可,当开发者在新的平台下开发应用时,将不再需要学习新的API知识。 这意味着,以 .NET Standard 作为目标平台的类库将可以在所有 .NET 所有平台上运行。具体信息可参考:https://zhuanlan.zhihu.com/p/24267356

Image(30)

     (一)生成.net core的"Hello World!"解决方案

     在VS2017的新建项目面板中,选择“控制台应用(.Net Core)”.数据项目名称,并点击下方的确定后,程序创建完成。

Image(31)

Image(32)

在自动生成的代码中,加入: Console.ReadLine(); 。然后点击键盘上的“F5”键,执行运行。

OK,我们的第一个程序就这样编写完成,并运行起来,非常的简单。

(二)dotnet.exe

     .net core程序虽已写完,但是打开任务管理器,我们却无法找到demo.exe这个程序,只看到dotnet.exe程序。为什么会这样呢?这要从.net core的设计说起,给大家留个作业,自己找答案吧。

Image(33)

     打开Demo程序编译后的目录,发现里面也没有exe文件。

Image(34)

     怎样才能运行我们写的程序呢?其实很简单。打开 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

Image(35)

Image(36)

posted @ 2017-08-18 08:47  凌晨三点半  阅读(11290)  评论(13编辑  收藏  举报