.net 跨平台桌面程序 avalonia:從項目創建到打包部署linux-64系統deepin 或 ubuntu。


介紹:

目前微軟還沒有跨平台桌面程序的開發框架。github上有一個團隊開始自行研發跨平台桌面框架,其中一款叫avalonia。avalonia 采用 Xaml+C#,類似於wpf,可運行於.netframework,.netcore,是相對比較成熟的.net跨平台桌面應用技術。下面介紹如何創建 avalonia項目;如何在windows平台下,將程序打包成可在deepin 或 ubuntu 執行的.deb安裝包,以及如何在deepin上安裝(由於ubuntu 和 deepin都是基於debian的linux系統,本文以deepin 來演示)。

第一步:項目創建

1.項目創建之前,先在vs2019中安裝avalonia 擴展。

   

2.創建 avalonia mvvm項目

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

          

         

                      

項目結構如下:

   

 

3.F5運行項目,如果運行成功,則項目創建成功。

第二步:打包設置

在windows上將項目打包成可在 deepin 或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) 上(注意:打包時,是獨立部署,也就是不需要在目標機器上安裝.netcore 運行時)。

   

第四步:運行安裝包,在deepin上安裝應用程序。

將復制到deepin系統上的.deb文件,雙擊,即可安裝應用程序。安裝后,應用程序會出現在列表中。雙擊即可打開程序。

  

 

 

avalonia 官網:http://avaloniaui.net/

打包參考網址:https://github.com/qmfrederik/dotnet-packaging

avalonia網上即時交流,可在上面即時提問:https://gitter.im/AvaloniaUI/Avalonia

推薦的avalonia在github上的網址,可提issue:https://github.com/AvaloniaUI/Avalonia/issues

可參考的avalonia網址,里面有功能齊全的demo:https://github.com/AvaloniaUI/Avalonia

avalonia社區網址:https://github.com/AvaloniaCommunity

說明:目前國內關於avalonia的資料比較少,遇到問題,可到bing國際版去搜索答案;或者去上面的網站提issue,發即時信息。

 

 

 

                   

     

                  

 

 

 

         

 

                   

     

 

      

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM