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