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