.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呵)
執行程式測試
打完收工。
&n