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框架版本

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

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

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

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