CPF C#跨平臺桌面UI框架,支援Windows,Mac,Linux,支援龍芯、飛騰等CPU
系列教程
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