如果在Ubuntu ARM 14.04系统下运行.Net Core 2.0 程序

目前虽然官方还没有怎么正式支持ARM下的.Net Core,但相信后续会越来越完善。经过程序,一些NET Framework代码在Linux下运行不是很稳定,有相当大的随机性。但是不影响我们学习如果将.Net代码跑在Ubuntu ARM系统上。

准备工作

将稳步至 https://www.microsoft.com/net/learn/get-started/windows 页面,按照相应的系统安装说明来安装.NET SDK。这步是必须的。验证安装是否成功可以输入命令:

$ dotnet –version

在我这电脑上输出是:

$ dotnet –version
2.1.104

创建项目

使用命令:

dotnet new console -o myApp

创建一个控制台程序,执行完成后,myApp文件夹下会有基础项目文件结构,里面包含了最简单的可以运行的代码。接下来使用命令运行程序:

$ dotnet run

控制台将会输出:

Hello World!

配置项目文件

接下来为发布到Ubuntu ARM系统中作准备,首先在

<PropertyGroup>中加入以下配置:

<RuntimeIdentifiers>win8-arm;ubuntu.14.04-arm</RuntimeIdentifiers>

如下所示:

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>win8-arm;ubuntu.14.04-arm</RuntimeIdentifiers>
</PropertyGroup>

表示添加了两个发布目标,一个是win8-arm,一个是ubuntu.14.04-arm。如果是16.04的系统的话,将14.04替换成相应的系统版本即可。

发布

使用命令

$ dotnet publish -r ubuntu.14.04-arm

这将会在项目文件夹中的bin目录中生成在Ubuntu下成功运行的所必需文件。目录结构是bin\Debug\netcoreapp2.0\ubuntu.14.04-arm\publish。我们将会把publish文件夹下的内容通过网络或者U盘等你们熟悉的方式放到Ubuntu系统上。我这里是使用的ssh文件传输协议,可以使用winscp软件来传输。这只是一个文件复制的过程。任何方式能将文件传送到嵌入式设备上都可以。

运行前的准备

当然,还需要一点额外的工作,首先登录到嵌入式设备,我们需要安装一些依赖包

运行命令:

sudo apt-get install libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev uuid-dev unzip

然后进入到程序目录中,就是之前拷贝到设备的文件所在目录。

将程序修改为可执行:

$ chomd u+x myApp

运行程序:

$ ./myApp

终端中将输出:

Hello World!

 

添加第三方库

可以使用以下命令:

dotnet add package System.IO.Ports --version 4.4.0

使用命令

$ dotnet restore

解析依赖包。

这个包目前不支持在Linux系统操作串口。只支持在Windows下面运行。

如果有需要在Linux使用.Net代码操作串口的话,可以使用第三方库:

$ dotnet add package SerialPortStream –version 2.1.2

 

谢谢阅读!如果您能支持一下就太好了!如果有疑问,可以在评论区留言!

Advertisements

如果在Ubuntu ARM 14.04系统下运行.Net Core 2.0 程序”的一个响应

  1. 你需要被打赏多少钱合适?这话一说,我差点说不下去了,不是别的原因,这几天我装上了Ubuntu ,结果几个桌面,这话的意思是,它竟然是这样的变了,好不好是另一个问题,这么说,它只有unity ,却是让我想多装个gnome ,它多装个这个,那意思是还有plasma 5 或更新?额,这话说不下去了,可以这样说,即它装的那个gnome 有奇怪,软件中心有个snap ,装到百分之十五,没有了。你能实效型的教会我几个应用,我付学费是没有问题的,额,多说一句很可能不该说的话,我交了一万多学费,自习一个夏天,得个结论,Linux 是免费学习的,至少从man page 看是这样。那么我确实有几个可能会是不够一般化的,如果说象自己的兴趣,的目的。这一说,先说抽象点,我猜测power cpu 加内存,包括现在看到的说是openGL 的三缓冲,很有可能可以用搞存储,搞整数字符的服务器,去搞游戏,实时画图。计算卡,包括显卡,只是插个显示屏。那么这一套,对吧!再一个,VPN 是怎么绕来绕去的?是吧!还有一个,主板上面的一些个片个,口子,这更有些公司的技术传奇。主要是认识一下,知道这是电阻,那是电容,什么电感之类的。你能教我,我们讨论一下学费。(我不检查了,手机写的,只这大,你对付着看)

    1. 不好意思,虽然没有很明白您这是说的什么意思,但是我也是个人开发者,还没达到您要的这个高度,如果您有特定的问题,我会很乐意尽力为您解答。

      1. 你竟然回复了,:),网上晃来晃去,没什么实质效果,我可以说有特定问题,也可以说没有,那么,这样说吧,你认为有没有必要让我介绍一下自已,这个意思是我一介绍自己,你认为没意思,我也觉得没意思,或者反过来,我总是不会嫌谁介绍他或她自己,因为我的角度不认为自己够什么位置。一般不这么说话,那么我解释这么一个我的问题,你看你怎么看这个问题,这个问题是,我才装了CCSM,结果点开一看,它一个提示,说乱设会搞砸,那意思应该是进不了桌面,那么如果有什么措施可以在搞砸之后恢复,它不知在哪说了,难道是又要翻多长时间它的文档?这么个问题,你有没有什么感想?你有没有很懂电脑绘图的朋友?不是PS 高手,是会写PS 级别的程序的朋友。其实这个我也可以去试一些开源游戏框架的专家,但总感觉不会有回复。

  2. 再多说一点,你对内存了不了解?什么四通道,六通道,竟然还有卖我电脑的说,可以开到十通道的!它有个SPD ,这个片子长什么样?焊在哪里?一些介绍新CPU 的编辑文章往往配个die图,五光十色,光怪陆离的那种图,那么,你划不划得出来那么个几通道对应于此图的何处?或者投射到socket, lga 封装的,对应哪些pin?

      1. 树莓派你熟不熟?几天前买了个 hifi 树莓派,有两个插孔看上去象一些年前的录像机,或者电视机上的,一般说是插av端子的插孔。这该不会是树莓派做的功率放大器吧?

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s