1. 程式人生 > 實用技巧 >.net 跨平臺桌面程式 avalonia:從專案建立到部署linux-64系統 deepin。

.net 跨平臺桌面程式 avalonia:從專案建立到部署linux-64系統 deepin。

介紹:

目前微軟還沒有跨平臺桌面程式的開發框架。github上有一個團隊開始自行研發跨平臺桌面框架,其中一款叫avalonia。avalonia 採用Xaml+C#,類似於wpf,可運行於.netframework,.netcore,是相對比較成熟的.net跨平臺桌面應用技術。下面介紹如何建立 avalonia專案,如何打包部署到linux deepin(ubuntu).

第一步:專案建立

1.專案建立之前,先在vs2019中安裝avalonia 擴充套件。

2.建立 avalonia mvvm專案

注意:由於要安裝在linux系統,建立專案的時候,專案名稱建議用小寫。不用小寫時,打包安裝包在linux上安裝,如果已經安裝了相同版本,則不會提示已安裝相同版本,也不能通過雙擊安裝包解除安裝。

 

專案結構如下:

3.F5執行專案,如果執行成功,則專案建立成功。

第二步:打包設定

在windows上將專案打包成可在ubuntu上安裝的.deb安裝包檔案,需要對專案做一些配置,設定應用程式生成快捷方式,應用程式圖示。

1.專案新增.desktop檔案和.png圖片(或者是其他格式的圖片)。

.desktop檔案用於生成桌面快捷方式,可新建.txt檔案(utf-8格式),按下圖編輯內容,改字尾為 .desktop,貼上到專案中;png圖片用於生成應用程式圖示(也可用icon圖片)

[Desktop Entry]
Name=testapp
Type=Application
Exec=/usr/share/testapp/testapp
Icon=/usr/share/icons/testapp.png

linux系統的.desktop檔案可參考 https://blog.csdn.net/yiferhuang/article/details/86634589 掃盲。

2.檔案配置:雙擊解專案名稱,開啟專案檔案。新增.desktop和.png

<ItemGroup>
    <Content Include="testapp.png" CopyToPublishDirectory="PreserveNewest">
        <LinuxPath>/usr/share/icons/testapp.png</LinuxPath>
    </Content>
    <Content Include="
testapp.desktop" CopyToPublishDirectory="PreserveNewest"> <LinuxPath>/usr/share/applications/testapp.desktop</LinuxPath> </Content> </ItemGroup>

第三步:打包釋出

在windows10下,打包成可在ubuntu上安裝的deb安裝包。參考https://github.com/qmfrederik/dotnet-packaging

1.安裝 .net打包deb工具:開啟cmd 執行以下命令

dotnet tool install --global dotnet-deb

2.執行打包命令:cmd進入專案資料夾

3.按順序逐條執行以下命令,打包釋出:

第一條指令是在專案中安裝打包工具,會在專案引用一個包。

第二條指令會將專案的目標執行時還原為linux-x64

第三條執行執行打包釋出,會輸出.deb檔案存放的位置。

注意:逐條執行命令時,執行到第三條有時候會報錯,說需要還原 目標執行時為 linux-x64,這時候,重新執行如下三條命令即可,或者將第一條和第二條執行順序換一下

dotnet restore -r linux-x64
dotnet deb install
dotnet msbuild testapp.csproj /t:CreateDeb /p:TargetFramework=netcoreapp3.1 /p:RuntimeIdentifier=linux-x64 /p:Configuration=Release

4.執行釋出命令後,會在輸出路徑上生成.deb檔案,將其複製到linux 系統deepin(或者ubuntu) 上。

第四步:準備linux deepin 執行環境,執行安裝包。

deepin和ubuntu都是基於debian的Linux系統。在微軟官網 https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu按照Ubuntu安裝.netcore的方式進行安裝即可。

1.開啟deepin終端並執行以下命令,將 Microsoft 包簽名金鑰新增到受信任金鑰列表,並新增包儲存庫:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

2.終端執行以下命令,安裝.netcore3.1 sdk(也可執行安裝runtime的命令,只安裝runtime):

sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-3.1

安裝完成後,在終端輸入 dotnet --version,出現如下圖所示版本號,則說明安裝成功。

3.將複製到deepin系統上的.deb檔案,雙擊,即可安裝應用程式。安裝後,應用程式會出現在列表中。雙擊即可開啟程式。