前言

  • 作为一名.NET程序员,很多时候都会被什么拖控件、跨平台等字眼所鄙视过,但是在我的的内心还是没有把自己看低过。因为说到底,平台和语言只是我们吃饭的工具。很多时候公司的发展是取决于商业竞争的,微软也不例外。在大环境下,我们终于看到了微软给我们带来的跨平台的惊喜。尽管这只是刚刚开始,但我相信在不久的将来,我们能切实感受到NET Core给我们的诚意,我们也会一直伴随着它成长着。
  • 当我们想要迫切知道它在Linux平台下给我们带来的惊喜时,我开始搜索各种资料,却发现它的平台部署并不是那么容易(这主要取决于Linux系统的类型和版本,以及一些相关依赖文件的缺失)。下面我就对自己的部署环境做一个记录,以便帮助大家减少部署环境中带来的困惑。

系统环境

  • 本地机器:Windows7 x64 旗舰版
  • 虚拟机:Vmware Workstation 10.0.1 build-1379776
  • Linux: ubuntu-14.04.3-desktop-amd64.iso

  如对虚拟机和Ubuntu的安装不清楚的请自行百度。安装完成后,为了适应屏幕的变化以及主机和虚拟机之间文件的复制操作,我们可以安装VMware Tools,具体参照这篇文章

环境部署

  • 安装程序代码编辑器visual studio Code,到官网下载最新版本,地址:https://code.visualstudio.com/download 选择编译后的.zip的文件下载。

    

    下载后直接解压压缩包,双击code就可以打开文件编辑器,打开后就可以Lock Launcher,方便以后打开

    

  

  • 安装DNVM(NET Version Manager),利用它可以在Linux上管理安装不同版本的.NET 运行环境DNX(.NET Execution Environment),输入以下命令:

sudo apt-get install unzip curl

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh |   DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

    安装成功后,可以输入DNVM 命令查看到以下界面:

    

  • 安装.NET 运行环境DNX(.NET Execution Environment),可以理解为NET CORE 的CLR,输入以下命令:

   sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

  dnvm upgrade -r coreclr

    安装完成后,可以输入dnx查看以下界面:

    

    并且我们也可以输入dnvm list 查看到服务器上安装的net版本列表

    

  

  • 安装Web服务器Libuv,libuv是Kestrel所使用的一个多平台的异步IO库,它是一个跨平台的HTTP服务器,可以托管运行ASP.NET 5 Web应用程序。输入以下命令:

sudo apt-get install make automake libtool curl

curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src

cd /usr/local/src/libuv-1.8.0

sudo sh autogen.sh

sudo ./configure

sudo make

sudo make install

sudo rm -rf /usr/local/src/libuv-1.8.0 && cd ~/

sudo ldconfig

  • 安装NodeJS,为什么要安装NodeJS呢?为后面安装的Net模板工具所需要。具体步骤可以参考这篇文章

  • 安装Yeoman,它是在 Node.js 之上生成的基架平台,使你能够为项目或代码文件生成基于模板的生成器。输入以下命令:

npm install -g yo bower grunt-cli gulp

npm install -g generator-aspnet

控制台程序

     在命令终端输入以下命令 sudo su

    以root用户操作,例如我们现在在桌面建立一个为Demo的文件夹,控制台程序文件放入此目录,首先转到Demo的根目录下,然后运行yo aspnet,你会看到以下界面:

    

  

    选择Console Application,回车创建我们的控制台应用程序,可以输入程序的名称

    

  

    此时程序已经创建成功,我们打开Visual studio Code 来查看此工程的源码,打开后选择此工程的文件名称ConsoleApplication(应为上图使用的是默认的名称)

    

    

   进入程序根目录,编译程序,然后执行程序可以看到运行结果为Hello World,在终端以普通用户输入以下命令:

    

    

    

  

Web程序

    例如我们的Web程序也创建在桌面的Demo文件下,按照上面的方法在root用户下转到Demo文件夹,运行yo aspnet  选择Web Application程序创建Web程序。

    

  

    在终端以普通用户转到Demo/WebApplication目录下运行dnu restore,加载web程序需要引用的依赖库文件。如下图:

    

    输入dnx web命令启动web服务器

    

  

    在浏览器中输入http://localhost:5000/ 可以看到运行的web程序如下图显示:

    

  

  • 到此,我们终于完成了Linux下NET平台的建设,安装过程中可能会应为环境的不同而出现一些错误,这些错误可以按照错误的提示在网上搜索答案。安装的程序包建议都到官网进行下载,保持最新版本,避免版本不同带来错误。

参考资料

Installing ASP.NET 5 On Linux

理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU

Setting up Visual Studio Code

ubuntu14.04安装nodejs基础环境

.Net Core 跨平台系列之环境部署的更多相关文章

  1. (5.2)mysql高可用系列——测试环境部署

    关键词环境部署: ############## 测试环境机器架构 #########[1]策划[1.1]linux服务器A组 8台 192.168.1.200~192.168.1.207,主机名db, ...

  2. GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  3. 《ASP.NET Core 高性能系列》环境(EnvironmentName)的设置

    一.概述 程序启动时Host捕获到环境相关数据,然后交由IEnvironment(传说要作废,但是觉得这个有设计点问题,因为.NET Core 非Web怎么处理?),然后交由IWebHostEnvir ...

  4. DotNet Core 1.0 集成 CentOS 开发与运行环境部署

    一.     DotNet Core 1.0 开发环境部署 操作系统安装 我们使用CentOS 7.2.1511版本. 安装libunwind库 执行:sudo yum install libunwi ...

  5. 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)

    黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...

  6. 拥抱.NET Core,如何开发跨平台的应用并部署至Ubuntu运行

    之前写了一篇博文宣布Rabbit Rpc跨平台了"拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc",在过程中尝试了如何编写支持跨平台的类库与应用程序,也尝试了在 ...

  7. [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建

    [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...

  8. Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

    Windows + IIS 环境部署Asp.Net Core App   环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...

  9. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

随机推荐

  1. Mac Mail PGP Setup 如何在苹果电脑上设置安全邮件 良好隐私密码法(英语:Pretty Good Privacy,缩写为PGP)

    背景知识 良好隐私密码法(英语:Pretty Good Privacy,缩写为PGP),一套用于讯息加密.验证的应用程序,采用IDEA的散列算法作为加密与验证之用. 关联文献:https://en.w ...

  2. Fragment全解析系列(一):那些年踩过的坑

    开始之前 最新版知乎,单Activity多Fragment的架构,响应可以说非常"丝滑",非要说缺点的话,就是没有转场动画,并且转场会有类似闪屏现象.我猜测可能和Fragment转 ...

  3. linux 脚本小试系列

    实现100以内的奇数和和偶数和的脚本 1 #!/bin/bash 2 # #声明一个偶数变量和一个奇数变量 3 declare -i evensum=0 4 declare -i oddsum=0 # ...

  4. selenium定位元素(本内容从https://my.oschina.net/flashsword/blog/147334处转载)

    注明:本内容从https://my.oschina.net/flashsword/blog/147334处转载. 在使用selenium webdriver进行元素定位时,通常使用findElemen ...

  5. linux内核追踪——find_next_bit函数详详详解

    写在前面 宗旨:把话说清楚,把道理讲透彻. 约定:所有代码均来自Linux内核2.6.24版. 建议:本文介绍得十分详细,但也略显繁琐,读者可以先看“Ⅴ.总结”部分带注释的源码,如果哪里不清楚,再回头 ...

  6. Java中的四舍五入

    经典案例分析:public class RoundTest {    public static void main(String[] args) {        System.err.printl ...

  7. HashMap原理与优化

    参考文献: HashMap的工作原理 java中HashMap重要性质和优化总结 一.HashMap的基本了解 基本定义:根据源代码的描述可知,HashMap是基于哈希表的Map接口的实现,其包含了M ...

  8. Qt5 installation and path configuration

    Replace Default Qt version paths in: /usr/lib/x86_64-linux-gnu/qtchooser/default.confor in newer rel ...

  9. 慕课网__HTML5 存储

    application cache 只能更新全部,不能更新单独的文件 在更新后,要重新打开浏览器,缓存才会生效, 不能实时生效

  10. hdu 5676 ztr loves lucky numbers

    题目链接:hdu 5676 一开始看题还以为和数位dp相关的,后来才发现是搜索题,我手算了下,所有的super lucky number(也就是只含数字4, 7且4, 7的数量相等的数)加起来也不过几 ...