.NET Core学习笔记(1)——在Linux下运行Console APP

都说.NET Core能够跨平台,说实话Linux咱也不太懂,咱也不敢问。怎样把一个简单的Console App在Linux下跑起来,真是费了我一番功夫。特作此篇以供指北。学习

.NET Core的大饼我就不替某软画了。接下来咱们就作个傻瓜教程,把Visual Studio 2019(VS2017也能够)开发的Console App,publish而且在Ubuntu上运行。就其中遇到的问题以及解决方法和你们讨论。命令行

首先咱们准备一下环境。Visual studio 2019和.NET Core SDK 2.2。其中Visual Studio能够去这个地址:blog

https://visualstudio.microsoft.com/downloads/教程

下载免费的Community版本。这个免费的Community版本绝对良心,除了条款写了不能用做商业用途,跟卖几千刀的版本比并不缺乏任何核心功能。开发

.NET Core的下载地址:get

https://dotnet.microsoft.com/downloadcmd

Visual Studio 2019(2017)自带的.NET Core版本是2.1,由于咱们会尝试2.2版本之后才支持的publish mode:Framework-dependent executable。因此仍是推荐升级到最新版。it

注意VS2017须要下载下图这个兼容性2.2版本。io

 

准备就绪以后,开始建立第一个.NET Core的Console APP。说实话整个过程和.NET Framework没有任何区别。table

不修改任何一行代码,便可点击F5运行,会在控制台中输出Hello World。

而后让咱们试一下publish功能。以下图在project文件上右键选择publish。

采用默认的配置,一路Next下去。会在Release文件夹下面生成一个publish文件夹,其中包含了咱们Console APP的发布用版本

打开这个文件夹仔细一看,发现木的exe文件,莫不是我眼花了??这特么怎么运行??刚开始把老纸尿都吓出来了。后来发现这是由于.NET Core 2.x版本的默认发布方式都是Framework-dependent deployment(具体3种发布方式咱们稍后讨论)。意思就是须要经过dotnet CLI来运行程序,能够理解为须要经过cmd命令行窗口来启动程序。而dotnet CLI能够经过安装.NET Core Runtime来得到(固然你装完整的.NET Core SDK也能够)。

让咱们打开cmd窗口,经过cd命令进入到publish的目录。而后键入dotnet dotnetcorehelloworld.dll。我如今很后悔刚才起了这么长一个名字,还好Windows下不区分大小写。而后能够在控制台窗口中看到hello world的输出了。和经过F5 Debug是同样的。

Windows下的准备工做已经完成了。接下来咱们试着将这个Console APP在Ubuntu下运行。

首先请你们拿出Ubuntu的机器,什么没有??要不要来戴尔买一台?

开个玩笑,咱们穷逼虽然什么都买不起,可是最懂生活,没有Ubuntu咱们能够5分钟以内在Windows上装一个。

此时此刻,我忽然感受某软那个CEO有点意思,什么“予力全球每一人、每一组织,成就不凡。”。让咱们来体验下某软怎么帮咱们学习Linux的。

打开MS Store搜索Ubuntu,第一个大图点开闭着眼睛装呗,安装过程很是迅速。

安装完成了先别急着点,要去控制面板的Windows Features里勾选Windows Subsystem for Linux。

找不到的同窗直接任务栏搜索或者问Cortana。

完成以上两步以后,就能够点击打开橘色的Ubuntu了,第一次打开会有个短暂的配置过程,而后要求你输入用户名和密码,和Windows的是独立的。咱们只是简单学习使用,因此随便起个好记的名字和密码就能够了。

打开Ubuntu的控制台界面后,咱们但愿能访问C盘,键入cd /mnt/c。而后再键入ls,就能看到C盘的文件了,固然有一些在Linux环境下是访问不了的。

为了简单起见,咱们切回Windows界面,将publish文件夹拷贝到C盘根目录。而后只须要cd publish就能够找到咱们的程序了。

很是遗憾咱们还不能经过dotnet命令运行程序,由于咱们根本就没在Linux环境下安装.NET Core的runtime啊!没有图形环境的话,只能敲命令行安装了,参考下面的连接:

https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

记得选Ubuntu 18.04,以后只管一通乱敲。不放心的话能够经过这个Linux命令确认Ubutu版本:lsb_release -a

完成这步安装后,只要简单的键入dotnet DotNetCoreHelloWorld.dll就能够运行程序了。注意Linux下区分大小写。如今知道为何要把publish拷出来了吧,否则cd目录累死人。

至此大功告成!感谢各位看到这里,想必各位还有不少疑问,咱们后面再接着讨论。

这个Hello World工程我就不上传Github了。各位本身实验吧,若是怀疑Windows subsystem for Linux的真实性,那么就来戴尔买个Ubuntu的机器^O^

相关文章
相关标签/搜索