日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.Net Core 之 MSBuild 介绍

發布時間:2023/12/4 asp.net 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net Core 之 MSBuild 介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

關于 .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 restore
dotnet build
dotnet run

原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-msbuild-sdk.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的.Net Core 之 MSBuild 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。