.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檔案,雙擊,即可安裝應用程式。安裝後,應用程式會出現在列表中。雙擊即可開啟程式。