.Net Core 环境搭建
前言:
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 32。
.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 commands Common options:
-v|--verbose Enable verbose output
-h|--help Show help Host options (passed before the command):
-v|--verbose Enable verbose output
--version Display .NET CLI Version Number
--info Display .NET CLI Info Common Commands:
new Initialize a basic .NET project
restore Restore dependencies specified in the .NET project
build Builds a .NET project
publish Publishes a .NET project for deployment (including the runtime)
run Compiles and immediately executes a .NET project
test Runs unit tests using the test runner specified in the project
pack 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 --help Microsoft .NET Core Shared Framework Host Version : 1.0.1
Build : cee57bf6c981237d80aa1631cfe83cb9ba329f12 Usage: 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 Shared Framework 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

# VERSION 1.0
FROM maydear.com/centos:7 #//其实就是官方镜像改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.0
ENV DOTNET_DOWNLOAD_URL https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/$DOTNET_VERSION/dotnet-centos-x64.$DOTNET_VERSION.tar.gz RUN 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/bin RUN 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 helloworld sudo 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能有更强的优化。
.Net Core 环境搭建的更多相关文章
- Linux学习之十--.Net Core环境搭建以及Nginx的搭建
一.Centos7下.Net Core 环境安装: 链接:https://www.microsoft.com/net/core#linuxcentos 按照步骤来: yum install libun ...
- NET Core 环境搭建和命令行CLI入门
NET Core 环境搭建和命令行CLI入门 2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文 ...
- NET Core 环境搭建和命令行CLI入门[转]
NET Core 环境搭建和命令行CLI入门 时间:2016-07-06 01:48:19 阅读:258 评论:0 收藏:0 [点我收藏+] 标签: N ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- 记录.NET Core部署到Linux之.NET Core环境搭建(1)
1.在安装.NET之前,您需要注册Microsoft密钥.注册产品存储库和安装所需的依赖项. 启动我们的虚拟机,输入以下命令: sudo rpm -Uvh https://packages.micro ...
- .Net Core 系列:1、环境搭建
前言: 2016年6月28日微软宣布发布 .NET Core 1.0.ASP.NET Core 1.0 和 Entity Framework Core 1.0. .NET Core是微软在两年前发起的 ...
- .Net Core + Angular2 环境搭建
环境搭建: 1)node.js版本>5.0,NPM版本>3.0,TypeScript版本>2.0(全装最新版就好了) 2)安装NTVS 1.2(node tools for vs), ...
- 在Ubuntu搭建.NET Core环境
Ubuntu16.04配置.net core环境 Ubuntu 16.04 desktop下载地址:http://www.ubuntu.com/desktop 本次是用vmware安装该系统. ...
- 在Windows系统搭建.NET Core环境并创建运行ASP.NET网站
微软于6月27日在红帽DevNation峰会上 正式发布了.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,其将全部支持Windows.OS X和 ...
随机推荐
- verilog中连续性赋值中的延时
上次遇到一个问题.写一个testbench需要移动两个时钟之间的相位.后来一想,貌似我们都是这么写clock的 always #(`P/2) clk = ~clk 我的两个时钟都是这么写,只是p ...
- libcprops
Install Howto Download the latest epel-release rpm from http://dl.fedoraproject.org/pub/epel/6/x86_6 ...
- IT项目经理
项目经理是具体项目工作的管理者,他们在工作中不断提升自己的领导才华,同时该职业又是一个权利与责任并存的职业, 他们主要对项目进行背景调查,收集整理项目相关资料,进行需求策划,撰写项目调查报告和信息综述 ...
- Protel99se教程二:使用protel99se原理图绘制
使用protel99se绘制原理图,首先要先设置一下显示网格这一项,这个可以根据个人习惯,并不是一定需要这样的,在prote99se的界面的View菜下,将visible Grid选中或取消,可以选择 ...
- MVC模式已死
MVC模式:Model模型 View试图 Control控制器,是目前主流模式,被当作服务器软件入门基本模式学习和掌握,主流框架Struts 1/2 JSF Wicket基本都顺理成章支持MVC模式. ...
- Android Manifest.xml 结构详解
关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activities ...
- poj 2153 Rank List(查找,Map)
题目链接:http://poj.org/problem?id=2153 思路分析: 判断Li Ming的成绩排名,需要在所有的数据章查找成绩比其高的人的数目,为查找问题. 查找问题可以使用Hash表, ...
- poj 3630 Phone List(字典树)
题目链接: http://poj.org/problem?id=3630 思路分析: 求在字符串中是否存在某个字符串为另一字符串的前缀: 即对于某个字符串而言,其是否为某个字符串的前缀,或存在某个其先 ...
- Winter(bfs&&dfs)
1084 - Winter PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Winter is ...
- android经常使用的电话操作
给大家分享一下我的一个Android工具类,能够获取手机里面的各种信息,包含拨打电话. 获取全部联系人姓名及电话,插入联系人姓名及电话,插入联系人姓名及电话.插入通话记录.获取用户全部短信.批量插入短 ...