CPF 入門教程 – 各平台各系統發佈說明(九)
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框架版本
到 //github.com/gsvm/loongson-dotnet/releases 下載對應的運行時,解壓,然後配置環境變量
export PATH="$PATH://自己改為運行時目錄/"
然後就可以用 dotnet XXX.dll 命令啟動你的程序
打包的時候,你可以把運行時也打包到一起,啟動的時候通過快捷方式的啟動路徑 Exec=/usr/local/bin/安裝路徑/dotnet/dotnet /usr/local/bin/安裝路徑/你的程序.dll