.Net Core 系列:1、环境搭建
前言:
? ? ? ?2016年6月28日微軟宣布發(fā)布 .NET Core 1.0、ASP.NET Core 1.0 和 Entity Framework Core 1.0。 .NET Core是微軟在兩年前發(fā)起的開(kāi)源跨平臺(tái).NET框架項(xiàng)目,支持Windows、OS X和Linux平臺(tái),可用于開(kāi)發(fā)各種類型的應(yīng)用。此次發(fā)布包括了 .NET Core運(yùn)行時(shí)、庫(kù)和工具,以及 ?ASP.NET Core庫(kù)。微軟還釋出了Visual Studio和Visual Studio Code擴(kuò)展,允許開(kāi)發(fā)者創(chuàng)建 .NET Core項(xiàng)目。如果要使用Visual Studio構(gòu)建 .NET Core應(yīng)用,開(kāi)發(fā)者需要安裝最新的 Visual Studio 2015 Update 3。
? ? ? ?.NET Core 目前還有很多功能無(wú)法和傳統(tǒng)Framework及mono比。而且在老項(xiàng)目的遷移,各種開(kāi)源類庫(kù)的支持上,目前相對(duì)匱乏。很多人會(huì)有疑問(wèn),微軟歷時(shí)2年發(fā)布的一個(gè).NET Core、ASP.NET Core、Entity Framework Core 能為我們解決什么難題?我們可以是用它們來(lái)完成什么業(yè)務(wù)?
? ? ? ?但是無(wú)論什么業(yè)務(wù),萬(wàn)行“代碼”從Hello Word起。。。。。
一、環(huán)境搭建
? ? ? ?無(wú)論使用什么語(yǔ)言,編程必須要學(xué)習(xí)的第一件事情,環(huán)境搭建。人類是高級(jí)動(dòng)物,因?yàn)槿祟悤?huì)使用工具,環(huán)境搭建其實(shí)是構(gòu)造工具的過(guò)程。目前官網(wǎng)上(https://www.microsoft.com/net/core#windows)有包含Windows、Linux、Mac、Docker的環(huán)境教程,相對(duì)還是很清晰的,但是這個(gè)網(wǎng)站說(shuō)的是開(kāi)發(fā)環(huán)境的使用,運(yùn)行環(huán)境呢?并沒(méi)有詳細(xì)介紹。而且就開(kāi)發(fā)環(huán)境來(lái)說(shuō)對(duì)于老NET人,一向是神器在手(Visual Studio 201×)什么開(kāi)發(fā)環(huán)境都一鍵搞定。但是這個(gè)一鍵搞定在跨平臺(tái)后就造成了各種的坑。
? ? ? ?習(xí)慣上我們?cè)诎惭b開(kāi)發(fā)環(huán)境時(shí)安裝的是.NET Core SDK,安裝運(yùn)行環(huán)境時(shí)安裝的是.NET Core
? ? ? ?.NET Core SDK = Develop apps with .NET Core and the SDK+CLI (Software Development Kit/Command Line Interface) tools
? ? ? ?.NET Core = Run apps with the .NET Core runtime
? ? ? ?因?yàn)楸救吮容^熟悉Linux Centos 7 所以本人將以Centos 7 為基礎(chǔ)講述。
? ? ? ?Centos 7.1 安裝開(kāi)發(fā)環(huán)境
#依賴包sudo yum install libunwind libicu #開(kāi)發(fā)環(huán)境下載的還是preview2 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131#官網(wǎng)的是將文件安裝到/opt/目錄
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo mkdir -p /usr/share/dotnet-dev-1.0.0 &&
tar zxf dotnet.tar.gz -C /usr/share/dotnet-dev-1.0.0
#將dotnet 執(zhí)行程序映射到/usr/bin執(zhí)行目錄;
sudo ln -s /usr/share/dotnet-dev-1.0.0/dotnet /usr/bin
? dotnet --help顯示信息如下所示
[root@968a822651a3 hellword]# dotnet --help .NET Command Line Tools (1.0.0-preview2-003121) Usage: dotnet [host-options] [command] [arguments] [common-options]Arguments:[command] The command to execute[arguments] Arguments to pass to the command[host-options] Options specific to dotnet (host)[common-options] Options common to all commandsCommon options:-v|--verbose Enable verbose output-h|--help Show helpHost options (passed before the command):-v|--verbose Enable verbose output--version Display .NET CLI Version Number--info Display .NET CLI InfoCommon Commands:new Initialize a basic .NET projectrestore Restore dependencies specified in the .NET projectbuild Builds a .NET projectpublish Publishes a .NET project for deployment (including the runtime)run Compiles and immediately executes a .NET projecttest Runs unit tests using the test runner specified in the projectpack Creates a NuGet package?
Centos 7.1 安裝運(yùn)行環(huán)境
#依賴包sudo yum install libunwind libicu #運(yùn)行環(huán)境下載 curl -sSL -o dotnet.tar.gz https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/1.0.0/dotnet-centos-x64.1.0.0.tar.gz
#官網(wǎng)的是將文件安裝到/opt/目錄
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo mkdir -p /usr/share/dotnet-1.0.0 && tar zxf dotnet.tar.gz -C
/usr/share/dotnet-1.0.0
#將dotnet 執(zhí)行程序映射到/usr/bin執(zhí)行目錄;
sudo ln -s /usr/share/dotnet-1.0.0/dotnet /usr/bin
? ? dotnet --help顯示信息如下所示
[root@19b9997445b9 dotnet]# dotnet --helpMicrosoft .NET Core Shared Framework HostVersion : 1.0.1Build : cee57bf6c981237d80aa1631cfe83cb9ba329f12Usage: dotnet [common-options] [[options] path-to-application]Common Options:--help Display .NET Core Shared Framework Host help.--version Display .NET Core Shared Framework Host version.Options:--fx-version <version> Version of the installed SharedFramework to use to run the application.--additionalprobingpath <path> Path containing probing policy and
assemblies to probe for.Path to Application:The path to a .NET Core managed application, dll or exe file to execute.If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1'
in your environment.To get started on developing applications for .NET Core,
install .NET SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
? ? Windows 10?安裝開(kāi)發(fā)環(huán)境(非vs2015)
? ? (只有在win10下才能使用命令行的方式執(zhí)行,在win7下提示一下錯(cuò)誤:Failed to load the dll from [C:\Program Files\dotnet\host\fxr\1.0.1\hostfxr.dll], HRESULT: 0x80070057)
? ? 下載DotNetCore.1.0.0-SDK.Preview2-x64:https://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/packages/DotNetCore.1.0.0-SDK.Preview2-x64.exe
?? ?Windows 10?安裝運(yùn)行環(huán)境
? ? 下載DotNetCore.1.0.0-Runtime-x64.exe:https://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/packages/DotNetCore.1.0.0-Runtime-x64.exe
? ? Docker?安裝運(yùn)行環(huán)境
? ? 官網(wǎng)上的Docker是以Debian 為基礎(chǔ)鏡像的,而我使用Docker為Centos為鏡像,所以我必須自己編寫Dockerfile來(lái)構(gòu)建我要的docker images
#//其實(shí)就是官方鏡像改TAG,自己docker pull centos后修改語(yǔ)句
MAINTAINER kelvin "kelvin@maydear.com"# 更新系統(tǒng)源 RUN yum -y update && yum clean all # 安裝依賴包 RUN yum -y install libunwind libicu# Install .NET Core ENV DOTNET_VERSION 1.0.0ENV DOTNET_DOWNLOAD_URL
https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/
$DOTNET_VERSION/dotnet-centos-x64.$DOTNET_VERSION.tar.gzRUN curl
-sSL -o dotnet.tar.gz $DOTNET_DOWNLOAD_URL#安裝dotnet core RUN mkdir -p /usr/share/dotnet-$DOTNET_VERSION &&
tar zxf dotnet.tar.gz -C /usr/share/dotnet-$DOTNET_VERSION#安裝dotnet core 到啟動(dòng)命令 RUN ln -s /usr/share/dotnet-$DOTNET_VERSION/dotnet /usr/binRUN rm -rf dotnet.tar.gz CMD [ "/bin/bash" ]#build image: #sudo docker build --rm -t="maydear.com/dotnet:1.0" .#run container: #sudo docker run -it --name=dotnet -d -v /xxx:/xxx --privileged=true
maydear.com/dotnet:1.0
二、第一個(gè).Net Core 程序
? ?Centos 7 秒出Hello World
mkdir helloworld cd helloworldsudo dotnet new && dotnet restore && dotnet build sudo dotnet run? ? 發(fā)布dotnet Core 程序
sudo dotnet publish
? ? 拷貝文件到運(yùn)行服務(wù)器,并運(yùn)行
?三、使用VS2015開(kāi)發(fā)第一個(gè)Hello Word
? ? ?1、安裝Visual Studio Community 2015?Update 3 (略。。)
? ? ?2、安裝?DotNetCore.1.0.0.RC2-VS2015Tools.Preview1插件。http://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/DotNetCore.1.0.0-VS2015Tools.Preview2.exe
? ? ?3、創(chuàng)建項(xiàng)目
四、總結(jié)
? ? ?project.json
{"version": "1.0.0-*",/*程序版本以前寫在AssemblyInfo*/"buildOptions": {"emitEntryPoint": true},"dependencies": {/*依賴關(guān)系(引用包)*/"Microsoft.NETCore.App": {"type": "platform","version": "1.0.0"},"test": "1.0.2-*"/*我自己定義的NET core 類庫(kù),測(cè)試類庫(kù)引用*/},"frameworks": {"netcoreapp1.0": {"imports": "dnxcore50"}} }?
從Hello World 上手習(xí)慣上唯一的區(qū)別就是.NET Core 的引用是通過(guò)nuget 引用包,但是nuget如果沒(méi)有支持.NET Core的包的時(shí)候,引發(fā)如圖的錯(cuò)誤:
這個(gè)nuget的自動(dòng)識(shí)別,期待在Nuget3.0能有更強(qiáng)的優(yōu)化。
相關(guān)文章:
ASP.NET Core 1.0 入門——了解一個(gè)空項(xiàng)目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡(jiǎn)介
云服務(wù)器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)
使用VS Code開(kāi)發(fā)ASP.NET Core 應(yīng)用程序
dotnet run是如何啟動(dòng)asp.net core站點(diǎn)的
ASP.NET Core提供模塊化Middleware組件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何運(yùn)行 .NET Core 應(yīng)用程序
.NET Portability Analyzer 已開(kāi)源
ASP.NET Core的配置(1):讀取配置信息
ASP.NET Core的配置(2):配置模型詳解
.NET Core 1.0 RC2 歷險(xiǎn)之旅
使用VS Code開(kāi)發(fā) 調(diào)試.NET Core 應(yīng)用程序
讓我們Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 環(huán)境配置
官方博客明確了 .NET Core RC2/RTM 時(shí)間表
.NET Core全新的配置管理[共9篇]
利用記事本創(chuàng)建一個(gè)ASP.NET Core RC2 MVC應(yīng)用
微軟.NET 正式劈腿成功,橫跨所有平臺(tái)
.NET Core 1.0 CentOS7 嘗試
解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安裝及示例教程
ASP.NET Core 開(kāi)發(fā)-中間件(Middleware)
結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境
通過(guò)Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文檔 第一章 入門
用 Visual Studio Code 在 macOS 上創(chuàng)建首個(gè) ASP.NET Core 應(yīng)用程序
用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個(gè) Web API
用 Visual Studio 發(fā)布一個(gè) Azure 云 Web 應(yīng)用程序
ASP.NET Core MVC 與 Visual Studio 入門
第二章指南(4.2)添加 Controller
DotNet Core 介紹
asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)
教你實(shí)踐ASP.NET Core Authorization(免看文檔教程)
asp.net core 使用 Redis 和 Protobuf 進(jìn)行 Session 緩存
asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)
第二章 指南(4.3)添加 View
dotnet core開(kāi)發(fā)體驗(yàn)之開(kāi)始MVC
dotnet core 開(kāi)發(fā)體驗(yàn)之Routing
聊聊ASP.NET Core默認(rèn)提供的這個(gè)跨平臺(tái)的服務(wù)器——KestrelServer
簡(jiǎn)析.NET Core 以及與 .NET Framework的關(guān)系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺(tái)程序
簡(jiǎn)析 .NET Core 構(gòu)成體系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰會(huì)上正式發(fā)布
.NET Core:面向未來(lái)的開(kāi)源跨平臺(tái)開(kāi)發(fā)技術(shù)
微軟說(shuō)它深愛(ài)著Linux,現(xiàn)在它用行動(dòng)證明了
原文地址:http://www.cnblogs.com/maydear/p/5630082.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的.Net Core 系列:1、环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: .NET Core dotnet 命令大
- 下一篇: 移植.NET Core计划,整合各平台变