.Net Core 系列:1、环境搭建
前言:
? ? ? ?2016年6月28日微軟宣布發布 .NET Core 1.0、ASP.NET Core 1.0 和 Entity Framework Core 1.0。 .NET Core是微軟在兩年前發起的開源跨平臺.NET框架項目,支持Windows、OS X和Linux平臺,可用于開發各種類型的應用。此次發布包括了 .NET Core運行時、庫和工具,以及 ?ASP.NET Core庫。微軟還釋出了Visual Studio和Visual Studio Code擴展,允許開發者創建 .NET Core項目。如果要使用Visual Studio構建 .NET Core應用,開發者需要安裝最新的 Visual Studio 2015 Update 3。
? ? ? ?.NET Core 目前還有很多功能無法和傳統Framework及mono比。而且在老項目的遷移,各種開源類庫的支持上,目前相對匱乏。很多人會有疑問,微軟歷時2年發布的一個.NET Core、ASP.NET Core、Entity Framework Core 能為我們解決什么難題?我們可以是用它們來完成什么業務?
? ? ? ?但是無論什么業務,萬行“代碼”從Hello Word起。。。。。
一、環境搭建
? ? ? ?無論使用什么語言,編程必須要學習的第一件事情,環境搭建。人類是高級動物,因為人類會使用工具,環境搭建其實是構造工具的過程。目前官網上(https://www.microsoft.com/net/core#windows)有包含Windows、Linux、Mac、Docker的環境教程,相對還是很清晰的,但是這個網站說的是開發環境的使用,運行環境呢?并沒有詳細介紹。而且就開發環境來說對于老NET人,一向是神器在手(Visual Studio 201×)什么開發環境都一鍵搞定。但是這個一鍵搞定在跨平臺后就造成了各種的坑。
? ? ? ?習慣上我們在安裝開發環境時安裝的是.NET Core SDK,安裝運行環境時安裝的是.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
? ? ? ?因為本人比較熟悉Linux Centos 7 所以本人將以Centos 7 為基礎講述。
? ? ? ?Centos 7.1 安裝開發環境
#依賴包sudo yum install libunwind libicu #開發環境下載的還是preview2 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131#官網的是將文件安裝到/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 執行程序映射到/usr/bin執行目錄;
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 安裝運行環境
#依賴包sudo yum install libunwind libicu #運行環境下載 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
#官網的是將文件安裝到/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 執行程序映射到/usr/bin執行目錄;
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?安裝開發環境(非vs2015)
? ? (只有在win10下才能使用命令行的方式執行,在win7下提示一下錯誤: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?安裝運行環境
? ? 下載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?安裝運行環境
? ? 官網上的Docker是以Debian 為基礎鏡像的,而我使用Docker為Centos為鏡像,所以我必須自己編寫Dockerfile來構建我要的docker images
#//其實就是官方鏡像改TAG,自己docker pull centos后修改語句
MAINTAINER kelvin "kelvin@maydear.com"# 更新系統源 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 到啟動命令 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
二、第一個.Net Core 程序
? ?Centos 7 秒出Hello World
mkdir helloworld cd helloworldsudo dotnet new && dotnet restore && dotnet build sudo dotnet run? ? 發布dotnet Core 程序
sudo dotnet publish
? ? 拷貝文件到運行服務器,并運行
?三、使用VS2015開發第一個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、創建項目
四、總結
? ? ?project.json
{"version": "1.0.0-*",/*程序版本以前寫在AssemblyInfo*/"buildOptions": {"emitEntryPoint": true},"dependencies": {/*依賴關系(引用包)*/"Microsoft.NETCore.App": {"type": "platform","version": "1.0.0"},"test": "1.0.2-*"/*我自己定義的NET core 類庫,測試類庫引用*/},"frameworks": {"netcoreapp1.0": {"imports": "dnxcore50"}} }?
從Hello World 上手習慣上唯一的區別就是.NET Core 的引用是通過nuget 引用包,但是nuget如果沒有支持.NET Core的包的時候,引發如圖的錯誤:
這個nuget的自動識別,期待在Nuget3.0能有更強的優化。
相關文章:
ASP.NET Core 1.0 入門——了解一個空項目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介
云服務器下ASP.NET Core 1.0環境搭建(包含mono與coreclr)
使用VS Code開發ASP.NET Core 應用程序
dotnet run是如何啟動asp.net core站點的
ASP.NET Core提供模塊化Middleware組件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何運行 .NET Core 應用程序
.NET Portability Analyzer 已開源
ASP.NET Core的配置(1):讀取配置信息
ASP.NET Core的配置(2):配置模型詳解
.NET Core 1.0 RC2 歷險之旅
使用VS Code開發 調試.NET Core 應用程序
讓我們Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 環境配置
官方博客明確了 .NET Core RC2/RTM 時間表
.NET Core全新的配置管理[共9篇]
利用記事本創建一個ASP.NET Core RC2 MVC應用
微軟.NET 正式劈腿成功,橫跨所有平臺
.NET Core 1.0 CentOS7 嘗試
解讀發布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安裝及示例教程
ASP.NET Core 開發-中間件(Middleware)
結合Jexus + Kestrel 部署 asp.net core 生產環境
通過Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文檔 第一章 入門
用 Visual Studio Code 在 macOS 上創建首個 ASP.NET Core 應用程序
用 Visual Studio 和 ASP.NET Core MVC 創建首個 Web API
用 Visual Studio 發布一個 Azure 云 Web 應用程序
ASP.NET Core MVC 與 Visual Studio 入門
第二章指南(4.2)添加 Controller
DotNet Core 介紹
asp.net core 中間件詳解及項目實戰
教你實踐ASP.NET Core Authorization(免看文檔教程)
asp.net core 使用 Redis 和 Protobuf 進行 Session 緩存
asp.net core 中間件詳解及項目實戰
第二章 指南(4.3)添加 View
dotnet core開發體驗之開始MVC
dotnet core 開發體驗之Routing
聊聊ASP.NET Core默認提供的這個跨平臺的服務器——KestrelServer
簡析.NET Core 以及與 .NET Framework的關系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 類創建專業的控制臺程序
簡析 .NET Core 構成體系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰會上正式發布
.NET Core:面向未來的開源跨平臺開發技術
微軟說它深愛著Linux,現在它用行動證明了
原文地址:http://www.cnblogs.com/maydear/p/5630082.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的.Net Core 系列:1、环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core dotnet 命令大
- 下一篇: 移植.NET Core计划,整合各平台变