前言

关于 .NET Core 旧版本的 sdk 介绍可以参看我以前的 这篇 文章。

8 个小时前,.NET Core 项目组释放了 .NET Core 新一轮的 sdk 工具更新,即 RC4 版本 ,这个版本也就是意味着基本功能已经确定了,下个版本应该就是RTM版了,会随着 Visual Studio 2017 正式版释放出来。

众所周知,从Tools RC3 版本开始,微软已经抛弃了原来的 project.json 改为了 MSBuild 工具进行项目文件格式,这么做有好有坏,我想很大原因是为了兼容以前的项目吧。

不管喜不喜欢以前的 MSBuild 这个风格,都已经是事实了,所以还是先提前了解一下最新的SDK 内容比较实际点吧。

从 project.json 迁移到 MSBuild

很简单,只需要下载最近版本的 Visual Studio 2017 RC版,然后会帮你自动迁移。

MSBuild(Microsoft Build Engine),它代表微软Visual Studio 的项目构建工具,这是一种基于 XML 的文件格式。

RC4 SDK 的一些改进和更改

比起以前的 sdk dotnet 命令,新的 sdk 最大的改进就是关于脚手架的一些工作,首先就是 dotnet new 命令。

dotnet new

在使用 dotnet new 命令后,不会默认创建一个控制台 Hello World 程序,而是会显示以下。

根据提示可以看到,需要制定相应的模板类型名称,这个改进我认为是非常不错了,也就是当使用非 Visual Studio 开发工具时,我们可以和容易的创建一个模板程序,而不用从头开始。 这和使用 Yeoman 非常像,并且方便。

还有一个特点是,模板并不是一成不变的,它具有更新功能,并且具有可扩展性,任何人都可以编写自己的模板使用 dotnet new 命令,当前目前的 dotnet new 还不具备上述的一些功能,微软会在后面的几个月完善它。

在使用 dotnet new创建一个程序的时候,除了指定模板类型外,还可以指定需要使用的框架。

dotnet new console -f 框架名

或者可以使用 dotnet new console --help 来查看本机都安装了哪些框架。

project.json vs MSBuild

下面是两个分别使用 以前的 project.json 方式和新的 msbuild 方式创建的两个MVC项目,然后来看看他们项目文件之间的区别。

project.json

{"userSecretsId": "aspnet-WebApplication-0799fe3e-6eaf-4c5f-b40e-7c6bfd5dfa9a","dependencies": {"Microsoft.NETCore.App": {"version": "1.1.0-preview1-001153-00","type": "platform"},"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0","Microsoft.AspNetCore.Diagnostics": "1.0.0","Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0","Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0","Microsoft.AspNetCore.Mvc": "1.0.1","Microsoft.AspNetCore.Razor.Tools": {"version": "1.0.0-preview2-final","type": "build"},"Microsoft.AspNetCore.Routing": "1.0.1","Microsoft.AspNetCore.Server.IISIntegration": "1.0.0","Microsoft.AspNetCore.Server.Kestrel": "1.0.1","Microsoft.AspNetCore.StaticFiles": "1.0.0","Microsoft.EntityFrameworkCore.Sqlite": "1.0.1","Microsoft.EntityFrameworkCore.Tools": {"version": "1.0.0-preview2-final","type": "build"},"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0","Microsoft.Extensions.Configuration.Json": "1.0.0","Microsoft.Extensions.Configuration.UserSecrets": "1.0.0","Microsoft.Extensions.Logging": "1.0.0","Microsoft.Extensions.Logging.Console": "1.0.0","Microsoft.Extensions.Logging.Debug": "1.0.0","Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0","Microsoft.VisualStudio.Web.CodeGeneration.Tools": {"version": "1.0.0-preview2-update1","type": "build"},"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {"version": "1.0.0-preview2-update1","type": "build"}},"tools": {"Microsoft.AspNetCore.Razor.Tools": {"version": "1.0.0-preview2-final","imports": "portable-net45+win8+dnxcore50"},"Microsoft.AspNetCore.Server.IISIntegration.Tools": {"version": "1.0.0-preview2-final","imports": "portable-net45+win8+dnxcore50"},"Microsoft.EntityFrameworkCore.Tools": {"version": "1.0.0-preview2-final","imports": [        "portable-net45+win8+dnxcore50",          "portable-net45+win8"]},"Microsoft.Extensions.SecretManager.Tools": {"version": "1.0.0-preview2-final","imports": "portable-net45+win8+dnxcore50"},"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {"version": "1.0.0-preview2-final","imports": [        "portable-net45+win8+dnxcore50",        "portable-net45+win8"]}},"frameworks": {"netcoreapp1.1": {"imports": [        "dotnet5.6",        "dnxcore50",        "portable-net45+win8"]}},"buildOptions": {"debugType": "portable","emitEntryPoint": true,"preserveCompilationContext": true},"runtimeOptions": {"configProperties": {"System.GC.Server": true}},"publishOptions": {"include": [      "wwwroot",      "**/*.cshtml",      "appsettings.json",      "web.config"]},"scripts": {"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath%                     --framework %publish:FullTargetFramework%" ]},"tooling": {"defaultNamespace": "WebApplication"}
}

msbuild

可以看出,两者的区别还是蛮大的。

其他

关于 RC4 Tools 其他 sdk 命令,和以前的没多大区别,创建一个项目并运行的基本的流程仍然是

dotnet new console
dotnet restoredotnet builddotnet run
原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-msbuild-sdk.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

.Net Core 之 MSBuild 介绍相关推荐

  1. c 结构体 不允许使用不完整的类型_.NET Core 基础类型介绍

    本节内容是对于C#基础类型的存储方式以及C#基础类型的理论介绍 基础数据类型介绍 例如以下这句话:"张三是一名程序员,今年15岁重50.3kg,他的代号是'A',他家的经纬度是(N30,E1 ...

  2. 【SF】开源的.NET CORE 基础管理系统 -介绍篇

    [SF]开源的.NET CORE 基础管理系统 -系列导航 1.环境: .NET Core SDK (https://www.microsoft.com/net/core) SQL Server or ...

  3. ASP.NET Core Web 项目文件介绍

    ASP.NET Core Web 项目文件 在本视频中,我们将探索并了解asp.net core项目文件. 我们使用C#作为编程语言,因此项目文件具有.csproj扩展名. 如果您使用过以前版本的AS ...

  4. ASP.NET Core - Razor 页面介绍

    简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面.在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面. Razor页面是ASP.NET Cor ...

  5. ASP.NET Core MVC 过滤器介绍

    过滤器的作用是在 Action 方法执行前或执行后做一些加工处理.使用过滤器可以避免Action方法的重复代码,例如,您可以使用异常过滤器合并异常处理的代码. 过滤器如何工作? 过滤器在 MVC Ac ...

  6. [译]Core Animation 3D介绍(第2部分)

    尊重原创 转自:http://codingobjc.com/blog/2013/06/24/core-animation-3djie-shao-di-2bu-fen/ 在上一篇教程中,我们已经学习了C ...

  7. [译]Core Animation 3D介绍(第1部分)

    尊重原创 转自:http://codingobjc.com/blog/2013/06/11/core-animation-3djie-shao-di-1bu-fen/ 在本教程中,我将向你介绍Core ...

  8. spring core之Ioc介绍

    1.ApplicationContext是BeanFactory的子接口. 2.BeanFactory提供配置框架和基本功能,ApplicationContext添加更多特定于企业的功能. 3.org ...

  9. Entity Framework Core 之简单介绍

    Overview EFCore是一个以对象映射器(O/RM)为核心的轻量级.可扩展的实体框架数据访问技术,目前支持Microsoft SQL Server.SQLite.Postgres(Npgsql ...

最新文章

  1. 国内主流IT公司Field Sales销售薪资 来自著名猎头公司内部信息 给IT的朋友们知道个行情 - 天涯...
  2. 俄罗斯:自由软件在这里生根
  3. 后台导出大量数据超时报 nginx404错误
  4. STM8单片机串口发送引脚和接收引脚分开使用
  5. 什么是物联网?在生活中有何体现?
  6. ArcGIS安装之后无法运行的几个常见问题的终极解决方法
  7. 拼多多打印订单有哪些软件?哪个软件好用呢?
  8. 输入法快捷键_关于日语输入法,你需要知道的一切
  9. 萤石云谷歌禁用flash_mac chrome屏蔽flash插件怎么办 mac chrome flash启用方法
  10. mui 点击长按复制文本
  11. Shadowsocks错误:端口已被占用1090的错误解决办法
  12. 0成本开发一个外卖返利领劵小程序|外卖返利系统
  13. 关于教程被人盗版出售的一些感想
  14. PAT乙级做题部分总结
  15. 三国史诗——三国官制(二)
  16. 用html和css制作九宫格,我就是要用CSS实现九宫格图
  17. ubuntu 18.04下greenplum安装笔记(二)安装Greenplum的失败的尝试
  18. win10自带媒体服务器,怎么在win10中搭建流媒体服务器搭建
  19. 学习笔记-B/S - Exploits
  20. rails开发利器:视频播放插件plugin(如何开发一个简单的插件)

热门文章

  1. UITableView 禁止下拉
  2. 存储设备分区,格式化,挂载
  3. 视图加载时自动执行铵钮事件
  4. Oracle 常用sql场景应用(未完待续......)
  5. 非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
  6. HTTP header中的 Cache-control
  7. HangFire循环作业中作业因执行时间太长未完成新作业开启导致重复数据的问题...
  8. NET问答: 如何取消或中止 Task 执行 ?
  9. 一起学习设计模式--02.简单工厂模式
  10. Roslyn 使用 Directory.Build.props 管理多个项目配置