实践目标

编写经典的hello world程序.使用.netcore框架,然后运行在linux上.

.netcore目前已经是2.1版本了,可以简单的认为是一种跨平台的.net framework,除了MS系统,还能运行在linux mac os.很多年以前,已经有一个体系天生跨平台,就是JAVA.,dotnet体系生态无法与java竞争.

2004年7月发布的mono项目是.net的一种跨平台实现, 做成了能在linux上运行的.net framework,还部分实现了ADO.NET ASP.NET等工具.使用C#开发的程序,终于可以跑在linux上了.当然,前提API能实现.

看过一些介绍.netcore的文章,看完后还是云里雾里,目前就这样理解了.它就是一种.net在linux和其它OS上的重新发明.

基础环境

这个hello world,运行环境如下

WIN10 / vs2017 / .netcore2.1 / centos7 16.11 (运行在VM12.57)

需要一些Linux基本操作知识.类似ms的cmd,linux系统是主要用命令行交互.比如新建文件/文件夹,进入文件夹,运行文件,查看系统信息等等.不像MS有易于操作的图形界面.会一些linux命令,并不意味着能玩转linux.

#[mkdir] 建立文件夹

#[tar] 解压缩用

#[In] 建立链接文件,这如同ms系统中的"快捷方式",就是一个指向运行文件的引用

#[echo $PATH] 显示环境变量.和MS一样,在cmd中执行一个程序时,如果这个程序所在目录不在环境变量中,那么提示找不到 程序.除非到这个程序的目录下执行.

#[可执行程序] 运行可执行程序.如果希望在任何目录下都能执行,可将其目录加到环境变量,或者在已经有环境变量目录下,添加一个到该程序的"链接文件"(快捷方式).

安装.netcore

和MS系统中一样,如果要跑C#程序,必须安装.net framework,并且必须对应好版本.

在linux中装软件,可以编译源码安装,也可以安装编译好的包.显然,第1种要求高,安装编译好的包要容易一些.

下载.netcore2.14https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1.4/2.1.4-download.md

环境是centos7 所以下载linux X64的这个版本.下载后得到文件 dotnet-sdk-2.1.402-linux-x64.tar.gz

将这个文件复制到centos中.目前是从MS系统复制到VM中的centos

   

再将其解压到/usr/dotnet这个目录下

[root@] mkdir -p /usr/dotnet     // 在usr下建立dotnet目录

[root@] tar zxf dotnet-sdk-2.1.402-linux-x64.tar.gz -C /usr/dotnet // 解压.netcore到/usr/dotnet目录下

[root@] ln -s /usr/dotnet/dotnet /usr/local/bin // dotnet是可执行文件,在/usr/local/bin下建立一个到该文件的"快捷方式".这样,在其它目录下也能执行dotnet命令了,因为/usr/local/bin已经在环境变量里了

测试程序

在centos下安装好了.netcore的SDK之后.就能运行程序了.

在vs2017里建立一个.netcore控制台程序,写在那句经典的 Console.WriteLine("Hello World!");  这个过程和.netframework时没有什么区别.

编译后在bin里有这些文件.其中.dll那个文件就是可执行文件

将这些文件复制到centos下,然后进入这个目录,使用dotnet命令执行这个dll

[root@] dotnet ConsoleApp1.dll

Hello World!打印出来.运行成功了.

就这样,在MS下开发的.C#程序,可以运行在linux下了.

.Net Core实践1的更多相关文章

  1. .net core实践系列之SSO-跨域实现

    前言 接着上篇的<.net core实践系列之SSO-同域实现>,这次来聊聊SSO跨域的实现方式.这次虽说是.net core实践,但是核心点使用jquery居多. 建议看这篇文章的朋友可 ...

  2. .net core实践系列之短信服务-目录

    前言 经过两周多的业余时间,终于把该系列的文章写完了.第一次写系列,可能部分关键点并没有覆盖到,如果有疑问的朋友可以随时反馈给我.另外也感谢在我发布文章时给予我方案建议与反馈源码BUG的朋友们.下面是 ...

  3. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

  4. .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现

    前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...

  5. .net core实践系列之短信服务-Api的SDK的实现与测试

    前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...

  6. .net core实践系列之短信服务-Sikiro.SMS.Bus服务的实现

    前言 前两篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>.<.net core实践系列之短信服务-Api的SDK的实现与测试>分别讲解了AP ...

  7. .net core实践系列之SSO-同域实现

    前言 SSO的系列还是以.Net Core作为实践例子与大家分享,SSO在Web方面复杂度分同域与跨域.本篇先分享同域的设计与实现,跨域将在下篇与大家分享. 如有需要调试demo的,可把SSO项目部署 ...

  8. .net core实践系列之短信服务-架构优化

    前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现.然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整. 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念. 源码地址 ...

  9. .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置

    新建控制台应用(.Net Core)程序 添加json文件,命名为appsettings.json,设置文件属性 如果较新则复制.添加内容如下 { "MyWords" : &quo ...

随机推荐

  1. Ubuntu 16.04安装Zabbix 3.2 版本

    系统环境:ubuntu16.04 注意:为了便于实验测试,需要关闭防火墙: parallels@zabbix-server:~$ sudo systemctl stop ufw   parallels ...

  2. BIM特点及格式文件说明

    BIM行业是建筑与IT结合而形成的一个新兴行业,既然能说是行业,说明它包含的内容非常丰富,懂一点和完全懂是两码事,就好像一滴水和一片大海的范围一样.现在国内有很多高校开设了BIM专业,并对口招收了学生 ...

  3. Android细笔记--DataStorage

    Shared Preferences 即使应用被杀了,shared preference也还是存在的 Internal Storage 创建于internal的文件只对本应用开放权限,即使手机用户本身 ...

  4. (简单)华为荣耀9i LLD-AL20的Usb调试模式在哪里开启的方法

    每当我们使用pc通过数据线连接上安卓手机的时候,如果手机没有开启Usb开发者调试模式,pc则没法成功检测到我们的手机,有时,我们使用的一些功能较好的应用如以前我们使用的一个应用引号精灵,老版本就需要开 ...

  5. 微信小程序(五) 利用模板动态加载数据

    利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:

  6. Linux 查看进程消耗内存情况总结

    在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗.占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些.在此之前,我们需要了解一下Linux系统下面 ...

  7. tofixed方法 四舍五入

    tofixed方法 四舍五入 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.例如将数据Num保留2位小数,则表示为:toFixed(Num):但是其四舍五入的规则与数学中的 ...

  8. 【公众号系列】两分钟学会SAP F1技巧

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]两分钟学会SAP F1技巧   写 ...

  9. c/c++ linux 进程间通信系列1,使用signal,kill

    linux 进程间通信系列1,使用signal,kill 信号基本概念:  软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号.内核 ...

  10. C#中@的作用

    1.在书写文件路径时,消除"/"的转义功能 string FileDirect = "C:\Text\Debug\Text.txt"; \\编译会报错 stri ...