CPF 入門教程 – 各平台各系統發佈說明(九)

CPF C#跨平台桌面UI框架,支持Windows,Mac,Linux,支持龍芯、飛騰等CPU

系列教程

CPF 入門教程(一)

CPF 門教程 – 數據綁定和命令綁定(二)

CPF 入門教程 – 樣式和動畫(三)

CPF 入門教程 – 繪圖(四) 

CPF 入門教程 – 設計器和模板庫的使用(五)

CPF 入門教程 – 控件布局(六) 

CPF 入門教程 – 屬性和事件(七)

CPF 入門教程 – 各個控件介紹(八)

CPF 入門教程 – 各平台各系統發佈說明(九)

 

一般建議根據發佈平台的注釋掉其他平台的適配器,以及刪除其他平台的引用,用來減少發佈的dll數量。比如如果發佈Windows上的,可以把Mac和Linux的注釋掉

 

一般的,項目右鍵,選擇發佈

 

選擇文件夾

設置好發佈路徑,完成。

 

 

選擇netcoreapp3.0,如果你用的NET5的話,就選NET5,NET4是用來支持XP的,你可以根據需要改。net4版本用的是GDI+渲染,性能會稍微差一點。

選擇獨立發佈,獨立發佈可以不需要安裝運行時就可以運行,就是程序包大了一些。獨立發佈只能是Netcore的,不支持net4。 win7上運行netcore可能需要打補丁。

根據需要選擇你的目標運行時

裁剪程序集,一般選上,可以減少發佈的程序包大小。至於單文件,你根據自己的需求選擇。

 

 

設置好了之後,按發佈按鈕,第一次發佈的時候可能會發佈失敗,你可以再點發佈按鈕,再發佈一下。

打開你設置的發佈目錄,裏面就是發佈後可以運行的程序,直接複製到對應平台就能運行,默認情況下Linux和Mac的可執行文件是沒有後綴的。

如果選擇NET5的話,Linux上提供的可執行文件無法直接雙擊啟動,需要通過控制台啟動,拖到控制台,按Enter啟動

 

各個平台打包方式,如果只是自己用的,不打包也可以運行

 

Windows

可以找第三方程序打包工具,比如 SetupFactory、Advanced Installer 等等

 

Mac

默認案例源碼裡帶打包文件夾。App.app文件夾,把文件夾解壓出來,把Netcore獨立發佈出來的所有dll和那些資源都移到App.app/ Contents/ MacOS/

Info.plist 用記事本打開 <key>CFBundleExecutable</key>這個鍵下面的值改成你的應用程序的名稱,沒有exe和dll後綴的。 

 

CFBundleName是上面菜單名稱

 

CFBundleIdentifier是程序唯一標識,該標識符採用了類似Java包的命名方式,例如com.apple.myapp。該束標識符可以在運行時定位束。預置系統使用這個字符串來唯一地標識每個應用程序。

當然把這個App.app文件夾複製到Mac下就能運行了。不過一般要打包為一個文件。

把App.app整個目錄壓縮打包為tar、tgz、iso 其中一種格式,如果是其他壓縮格式可能會導致沒有權限運行

 

Linux

打包可以用 checkinstall 或者 dpkg  具體使用方法,你們自己百度吧

 

龍芯

由於指令集的問題,龍芯平台的程序發佈,不能使用獨立發佈,必須改成依賴框架和可移植選項,而且必須根據當前龍芯提供的運行時版本選擇netcore框架版本

 到 //github.com/gsvm/loongson-dotnet/releases  下載對應的運行時,解壓,然後配置環境變量

export PATH="$PATH://自己改為運行時目錄/"

然後就可以用  dotnet XXX.dll  命令啟動你的程序

 

打包的時候,你可以把運行時也打包到一起,啟動的時候通過快捷方式的啟動路徑 Exec=/usr/local/bin/安裝路徑/dotnet/dotnet /usr/local/bin/安裝路徑/你的程序.dll