.net core跨平台应用研究-ubuntu core下配置.net core运行时
引言
年初研究了一阵子.net core跨平台应用,先后发表了几篇应用研究的文章。因工作原因,忙于项目上线,有一阵子没来博客园写文章了。最近项目基本收尾,抽空翻了下自己的博客,廖廖几篇文章,真让人汗颜。
近半年来,实施项目的是完全基于.net core进行开发,部署运行于ARM Cortx-A7芯片上的嵌入式Linux系统中,直接原生应用部署,是一个典型的跨平台开发应用。项目实施中,也积累了不少跨平台应用的心得,拟抽空将一些与项目业务无关的内容进行整理分享,以期对各位使用.net core平台开发的朋友能有一定的帮助。
环境介绍
笔者实施的项目,是一个协议网关型的项目应用。
硬件采用ARM Cortx-A7,512MB内存,8GB eMMC存储,10/100Mbps以太网,具有多个UART通讯接口和若干GPIO。
系统环境为基于Linux4.14的ubuntu core(16.04),兼容Ubuntu系统软件源,集成了QT(笔者并没有用到),非常适合于企业用户用作产品的基础OS。
跨平台应用
笔者的项目,涉及到若干通讯接口和一定的硬件操作,应用了不少开源类类库:
flyfire.CustomSerialPort 笔者自行封装的开源跨平台类库
NModbus.SerialPortStream 支持跨平台的Modbus类库
MQTTnet 一个支持.net core的开源的MQTT类库
NodaTime 一个用于处理UTC时区的开源类库
………
以上类库,均可在windows系统和笔者所使用的ubuntu core(linux4.14)平台正常运行。
部署.dotnet core运行时
啰嗦了半天,无非是介绍了一下笔者的跨平台应用的一些背景,还是回归本文主题,介绍一下如何在ubuntu core(非ubuntu桌面环境)环境下部署.dotnet core程序运行环境。
更新软件源
sudo apt-get update
安装库依赖
sudo apt-get install libcurl3
sudo apt-get install libunwind8
根据微软官方文档介绍,需要安装相关依赖,实际使用中,不安装貌似并无影响呵。^_^
下载或复制运行时压缩包
下载的话,可能有的系统需要先执行如下安装
sudo apt-get install curl
下载32位版本
curl -sSL https://download.visualstudio.microsoft.com/download/pr/428aaa32-f66c-4847-b845-aa21f90504e4/1cf033db866414997140c2672bd75069/dotnet-runtime-2.2.6-linux-arm.tar.gz -o dotnet-runtime-2.2.6-linux-arm.tar.gz
下载64位版本
curl -sSL https://download.visualstudio.microsoft.com/download/pr/f5e04830-50fc-435c-8bb5-fcd4629da944/8aa7cce5c3fcb6a7db180b923d3574ef/dotnet-runtime-2.2.6-linux-arm64.tar.gz -o dotnet-runtime-2.2.6-linux-arm64.tar.gz
根据需要,下载对应版本即可。笔者使用的运行时为2.2.6。
解压安装
解压安装dotnet core运行时到指定目录(/~cli/dotnet)
普通用户在运行时所在压缩包目录运行如下命令:
sudo mkdir -p /~cli/dotnet && sudo tar zxf dotnet-runtime-2.2.6-linux-arm.tar.gz -C /~cli/dotnet
root用户运行如下命令:
mkdir -p /~cli/dotnet && sudo tar zxf dotnet-runtime-2.2.6-linux-arm.tar.gz -C /~cli/dotnet
注:目录可以根据需要自定义,并无具体要求。
创建程序快捷方式
ln -s /~cli/dotnet/dotnet /usr/local/bin
按以上步骤,即完成了.net core运行时在ubuntu系统上的安装部署
输入:dotnet –info 命令查看运行时信息,正常的话,结果如下图
如图,dotcore运行时已成功部署到了ubuntu core系统中。
发布程序
将dotnet core程序进行部署发布,笔者使用自己开源的HelloArm串口测试程序进行演示
配置发布部署模式,这里使用的是框架依赖方式进行发布,适合在开发过程中,经常需要修改更新的项目,关于独立部署发布模式,在笔者的《.Net Core跨平台应用研究-HelloArm(串口篇)》中有所介绍,有兴趣的朋友可自行查阅。
最后,点击发布,将程序打包生成到bin\Release\netcoreapp2.2\publish\目录下。
将发布的程序目录复制到目标平台
赋予目标程序可执行权限(dotnet core的框架仪表可执行文件为dll呵)
运行程序测试
打完收工。
.net core跨平台应用研究-ubuntu core下配置.net core运行时的更多相关文章
- 在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools
在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools 网站有提示: The install script won't work, but you can copy ...
- .Net Core跨平台应用研究-HelloDDNS(动态域名篇)
.Net Core跨平台应用研究-HelloDDNS -玩转DDNS 摘要 为解决自己搭建的内网服务器需要域名而因没有超级用户密码不能开启光猫内置DDNS功能的问题,自己动手,基于.net core, ...
- .Net Core跨平台应用研究-CustomSerialPort(增强型跨平台串口类库)
.Net Core跨平台应用研究-CustomSerialPort -增强型跨平台串口类库 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解 ...
- Ubuntu Nginx下配置网站ssl实现https访问
最近在看 HTTP权威指南 看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...
- Ubuntu环境下配置GCC
Ubuntu网络环境下安装GCC及其头文件步骤: 1.Ubuntu环境下配置GCC 刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装 ...
- ubuntu 18 下配置 WebStorm 编译 sass
ubuntu 18 下配置 WebStorm 编译 scss 标签(空格分隔): IDE 安装Ruby: sudo apt-get install ruby ruby -v ruby 2.5.1p57 ...
- Ubuntu环境下配置Android Studio【转】
本文转载自:https://www.jianshu.com/p/1f6295f9c955 之前学习Android开发的时候,一直跟各种教程一样,使用的是Eclipse+ADT,主要是比较方便,容易上手 ...
- 在Linux Mint13下编译安装mono运行时
最近一直想体验下mono在web开发上到底进展到什么程度,挑战一下它对web开发的极限.因为asp.net mvc本身依赖windows平台的东西不太多,所以这些assembly移植到mono/lin ...
- .Net Core跨平台应用研究-HelloArm(串口篇)
引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应用是否能在高性价比的linux嵌入式平台运行,针对dotnet core应用程序进行嵌入式linux环境的发布部署运行验证 ...
随机推荐
- [python]泡菜存储(pickle)
对于保存文本,如果要保存的数据像列表,字典甚至是类的实例时,普通的文件操作就会很复杂,如果把这些转化为字符串写入到文本文件中保存,把这个过程反过来读取的话就会异常麻烦,因此python提供了一个标准模 ...
- java-ztest测试报告的搭建,python-BeautifulReport
今天用testng的时候感觉测试报告贼丑又慢,以下图片是对比.了解到ztest,搭建的时候发现网上没有教程,对java真是太不友好了,所以步骤记录下吧.有疑问的可进群:231733032 使用ztes ...
- Skeleton with Assimp 骨骼动画解析
Skeleton with Assimp 骨骼动画解析 骨骼动画是图形学中十分常见应用很广泛的一个技术,也是比较基础的内容,作为图形学的工程师需要将这一部分内容梳理清晰,主要关键在于几点:第一,分清楚 ...
- springboot 集成Redis单机
1.redis服务搭建 centos7 搭建redis服务 2.接入相关 pom文件依赖引入 <dependencies> <dependency> <groupId&g ...
- mysql 时间与字符串相互转换
时间.字符串.时间戳之间的相互转换:date转字符串.date转时间戳.字符串转date.字符串转时间戳.时间戳转date,时间戳转字符串用法 涉及的函数 date_format(date, form ...
- forEach标签
1.forEach标签的简单使用: (1)未设置步长属性时,默认步长为1: <c:forEach "> <c:out value="${number}" ...
- uC/OS-III 任务详解(四)
uC/OS系统的任务一般都放在最开始介绍,我放在第四章主要是对模糊的概念作清晰的讲解. 从用户的角度来看,uC/OS-III 中的任务可以分为5 种状态,分别是休眠态.就绪态.运行态.挂起态和中断态, ...
- IDEA 学习笔记之 Maven项目开发
Maven项目开发: 配置Maven: 新建Maven项目: 选择webapp: 和eclipse一样,设置: 修改maven配置,添加一个新属性,可以加快项目创建速度: 完成: 新建java和tes ...
- ASP.NET Web API 2系列(一):初识Web API及手动搭建基本框架
1.导言 随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数.全栈工程师的压力越来越大. PC端,pad端,移动端App(安卓/IOS)的发展,使得前后端一体的开发模式十分笨重.因此,前后端 ...
- 一步步剖析spring bean生命周期
关于spring bean的生命周期,是深入学习spring的基础,也是难点,本篇文章将采用代码+图文结论的方式来阐述spring bean的生命周期,方便大家学习交流. 一 项目结构及源码 1. ...