一步步教你在 Windows 上构建 dotnet 系应用的 UOS 软件安装包

本文详细介绍了如何在Windows环境下为dotnet系列应用(如CPF、UNO、Avalonia)创建适用于UOS统信系统的deb软件安装包。首先,需要对应用进行发布,然后组织符合UOS要求的文件结构,最后使用dpkg工具打包。文件结构包括DEBIAN和opt文件夹,DEBIAN文件夹中包含control文件,opt文件夹下有files和entries文件夹等。在打包过程中,注意文件权限设置、签名以及可能出现的问题和解决方案。
摘要由CSDN通过智能技术生成

本文将详细指导大家如何逐步为 dotnet 系列应用创建满足 UOS 统信系统软件安装包的要求。在这里,我们所说的 dotnet 系列应用是指那些能够在 Linux 平台上构建 UI 框架的应用,包括但不限于 CPF 应用、UNO 应用、Avalonia 应用等

基于 dotnet 系的自发布自包含的能力,可以将 dotnet 系的应用进行发布为独立应用,无需框架依赖,如此即可执行 deb 包的二进制打包过程,从而很方便对接上 UOS 统信系统软件安装包的要求

整体步骤可以分为三个大步骤:

  • 步骤一:发布应用

  • 步骤二:组织文件结构

  • 步骤三:打包 deb 文件

本文接下来将按照步骤顺序一步步告诉大家如何在 Windows 上为 dotnet 系的应用创建符合要求的 UOS 统信系统软件安装包。本文写于 2023.12.25 如果你阅读本文的时间距离编写时间过远,可能本文有些知识不正确

目录

  1. 步骤一 发布应用

  2. 步骤二 组织文件结构

    1. 2.2.1 DEBIAN 文件夹

    2. 2.2.2 opt 文件夹

    3. 2.2.2.1 files 文件夹

    4. 2.2.2.2 entries 文件夹

    5. 2.2.2.3 info 文件

    6. 2.1 准备打包环境

    7. 2.2 准备文件结构

  3. 步骤三 打包 deb 文件

    1. 文件权限

    2. 签名

  4. 常见问题

    1. dpkg 提示 missing final newline 错误

    2. dpkg 提示 missing ‘Package’ field 错误

    3. dpkg 提示 No such file or directory 错误

    4. 开始菜单图标空白或是默认应用图标

    5. 应用启动闪退

    6. 打开控制台调试

  5. 参考文档

步骤一 发布应用

无论是 CPF 应用还是 UNO 应用或者 Avalonia 应用,在进行构建符合要求的 UOS 软件安装包的第一步都是对应用项目进行发布,且为了后续打包和分发的方便,十分推荐发布为独立应用。这些应用的大概的发布命令行如下,请根据你的实际需求进行更改

dotnet publish -c release -r linux-x64 --self-contained true

完成发布之后,咱即可拿发布出来的文件夹进行制作符合要求的 UOS 软件安装包。为了减少大家的学习成本,本文将一步步进行,本文在编写过程中,将会先略去在本文所没有用到的知识点。但请大家放心的是,按照本文的方法是可以构建出一个符合要求的 UOS 软件安装包,只有一些扩展可选部分的功能被本文略过

在进入步骤二之前,我推荐将发布的文件夹拷贝到 UOS 系统上测试一下,确保应用本身发布出来是能够正常运行

步骤二 组织文件结构

本文属于尽可能多的手动化打包过程,所使用的工具只有文本编辑器以及 WSL (适用于 Linux 的 Windows 子系统) 和 dpkg 工具。本文这里使用 WSL 仅仅只是为了使用 dpkg 工具而已,尽量使用官方推荐的打包工具。事实上,咱是完全可以将此过程在 Windows 上完成的。但为了减少引入额外的工具,本文依然使用 dpkg 工具进行打包,在本文后面,大家可以看到 dpkg 工具的戏份也只有一句话

2.1 准备打包环境

在开始之前,需要先准备好打包环境

  • 文本编辑器

    • 这里的文本编辑器可不推荐选用 Windows 自带的记事本哦。因为 Windows 自带的记事本绝大部分情况下的默认行为都会写入文件的 BOM 头,导致脆弱的 Linux 不认识而挂掉。如果一定要用 Windows 自带的记事本工具,记得保存选项里面选用的是 UTF-8 版本,不能选用 UTF-8 with BOM 等编码

    • 推荐使用 SublimeText 或 Vim 工具都可以

  • Debian 的 WSL 工具

    • 下载地址: https://www.microsoft.com/store/productId/9MSVKQC78PK6?ocid=pdpshare

    • 安装方法: 安装 WSL - Microsoft Learn

  • dpkg 工具

    • 默认就在 Debian 里面带了,你只需要打开 Debian WSL 命令行,输入 dpkg 试试看,即可知道安装了没。如没安装,那随便网上搜搜就知道怎么安装了

为什么在 WSL 里面要选用 Debian 版呢?请自行搜搜 uos 和 debian 关系 你就知道咯

2.2 准备文件结构

开始之前的准备工作完成之后,接下来就可以开始正式的打包大业了。先来明确一下咱的目标:现在咱手头上有一个 Debian 的 WSL 工具,也有使用 UI 框架的应用进行独立发布之后的文件夹,意味着其二进制文件可以直接在 UOS 上双击运行。咱需要做的就是将独立发布之后的文件夹打进安装包里面,再搭配上 UOS 规范要求的图标、应用信息等即可

根据 应用打包规范 文档中心-统信UOS生态社区 文档,咱可以了解到符合 UOS 规范要求的安装包其实也是一个 deb 包。与之不同的只有文件结构组织形式,以及部分配置内容不相同而已

根据 如何构建符合要求的 UOS 软件安装包 - VVavE 文档,可以看到在 UOS 规范下的安装包的文件结构组织形式如下

│  
├─DEBIAN
│      control
│      
└─opt
    └─apps
        └─org.dotnetcampust.exampleapplication
            │  info
            │  
            ├─entries
            │  ├─applications
            │  │      org.dotnetcampust.exampleapplication.desktop
            │  │      
            │  └─icons
            │      └─hicolor
            │          └─24x24
            │              └─apps
            │                      org.dotnetcampust.exampleapplication.png
            │                      
            └─files
                └─bin
                    │  ExampleApplication
                    │  ExampleApplication.deps.json
                    │  ExampleApplication.dll
                    │  ExampleApplication.pdb
                    │  ExampleApplication.runtimeconfig.json
                    │  ExampleApplication.uprimarker
                    │  WindowsBase.dll
                    │  Microsoft.CSharp.dll
                    │  ...

再次感谢 VVavE 潮汐 的博客 本文接下来将有大量知识内容来源于此

本文接下来将按照文件夹组织的顺序,告诉大家如何进行组织

2.2.1 DEBIAN 文件夹

安装包的文件结构组织的根目录包含了 DEBIAN 和 opt 两个文件夹。其中的 DEBIAN/ 文件夹是构建过程文件夹,包含软件包构建过程相关的控制文件。在本文这里,只需放入 control 构建控制文件即可,此文件完全遵照 Debian 官方规范

为了方便大家理解,本文将对 UnoFileDownloader 下载器 进行打包作为例子,方便大家了解手动打包的细节

在开始制作安装包的时候,咱还需要给应用

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值