官网已经有一个.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。