zoukankan      html  css  js  c++  java
  • .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:UsersdellDocumentsvisual studio 2017ProjectsDemoDemoinDebug etcoreapp2.0demo.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 FilesdotnetsdkNuGetFallbackFoldermicrosoft.netcore.platforms2.0.0 untime.json。

         保存编辑信息,然后重新编译,可以在生成目录下看到win10-x64-corert目录,此目录已经生成了exe文件。通过此方法,我们可以一次性编译各种环境下的程序文件。如果想更多的了解RID(RuntimeIdentifier ),请参考:https://docs.microsoft.com/en-us/dotnet/core/rid-catalog

    Image(35)

    Image(36)

  • 相关阅读:
    关于Winsock编程中IO重叠的概念
    comparator接口与Comparable接口的区别
    String、StringBuffer与StringBuilder之间区别
    Oracle 中 call 和 exec的区别
    谈谈对Spring IOC的理解(转)
    常见的几种RuntimeException
    long(Long)与int(Integer)之间的转换
    ValueStack值栈和ActionContext
    Struts2执行过程解析
    Struts2的经典入门
  • 原文地址:https://www.cnblogs.com/vveiliang/p/7387648.html
Copyright © 2011-2022 走看看