首页 > 其他分享 >electron项目同一壳版本号(目录)实现安装信息和内容不同(少量不同)

electron项目同一壳版本号(目录)实现安装信息和内容不同(少量不同)

时间:2023-12-06 13:55:50浏览次数:36  
标签:WriteINIStr set 版本号 不同 INSTDIR electron ini Install byte

一、通过electron层的scripts中的build.nsi文件修改安装生成的set.ini文件内容

SetShellVarContext all
    /* 把当前安装包的名字写入set.ini,便于程序读取并设置{setupname}参数 */    
    IfFileExists "$INSTDIR\set.ini" 0 file_not_found
        WriteINIStr "$INSTDIR\Reinstall.ini" "Install" "FirstInstall" "0"
        goto end_of_checksetini
    file_not_found:
        WriteINIStr "$INSTDIR\Reinstall.ini" "Install" "FirstInstall" "1"
    end_of_checksetini: 
    WriteINIStr "$INSTDIR\set.ini" "Install" "SetupName" $EXEFILE
    WriteINIStr "$INSTDIR\set.ini" "Install" "Version" ${PRODUCT_VERSION}
    // 写入的新内容
    WriteINIStr "$INSTDIR\set.ini" "Install" "CompanyName" "互盾"

写入后安装的文件路径有set.ini文件,打开可查看内容是否写入成功

 

二、在需要区别展示的地方写一个获取set.ini文件中内容的方法

function getCompanyName() {
    try {
        let byte = window.require("fs").readFileSync(`set.ini`);
        try {
            byte = window.require("iconv").decode(byte, "gbk");
        } catch (error) {
            byte = window.require("iconv-lite").decode(byte, "gbk");
        }
        let content = byte + "";
        let lines = content.split(/[\r\n]+/);
        let CompanyName = lines.find((x) => /CompanyName/.test(x));

        console.log(CompanyName.split("=")[1]);
        return CompanyName.split("=")[1] || "砾捷";
    } catch (err) {
        return "砾捷";
    }
}

三、注意事项

(1)安装包属性中的详细信息更改可以在打包时将其更改为想要的信息(例如:将砾捷软件更改为互盾软件),不需要提交代码,打完包后还原即可(安装信息可能在electron的config.js中更改)

(2)如果要更换安装器和卸载器,也是直接更换了之后打包即可,不需要提交代码,待打包结束将其更换回去

标签:WriteINIStr,set,版本号,不同,INSTDIR,electron,ini,Install,byte
From: https://www.cnblogs.com/wyl-k/p/17879328.html

相关文章

  • foxy与galactic解析rosbag的不同之处
    前言foxy和galactic版本在rosbag2_storage这个包的调整有点大(头文件及接口的命名空间),下面的代码仅供参考使用foxy#include"db3_reader.h"#include<pcl/common/transforms.h>#include<pcl/point_types.h>#include<pcl_conversions/pcl_conversions.h>#include<rosba......
  • 想在同一张图片上添加不同的文字,也就是一张图片上出现一个词
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python实战的问题,一起来看看吧。问题描述:上图中也是他的代码,没有文字的代码确实看着难受,而且还是手机拍出来的模糊照片,不是截图。其实他自己也发现了问题,但是不知道怎么修改。二、实现过程这里【......
  • # yyds干货盘点 # 想在同一张图片上添加不同的文字,也就是一张图片上出现一个词
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python实战的问题,一起来看看吧。问题描述:上图中也是他的代码,没有文字的代码确实看着难受,而且还是手机拍出来的模糊照片,不是截图。其实他自己也发现了问题,但是不知道怎么修改。二、实现过程这里【巭孬......
  • RK3568,字符设备框架:管理同主设备号、不同次设备号设备
    字符设备框架:管理同主设备号、不同次设备号设备以下代码针对迅为开发板RK3568,开发板系统是ubuntu20.04,正文以下是我写的字符设备框架,实现了管理同主设备号、不同次设备号的功能。代码:private_data_test.c#include<linux/init.h>#include<linux/module.h>#include<linux......
  • C++运行期多态和编译期多态(以不同的模板参数调用不同的函数)
    在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。<h1"="">1运行期多态运行期多态的设计思想要归结到类继承体系的设计上去。对......
  • 聊聊部署在不同K8S集群上的服务如何利用nginx-ingress进行灰度发布
    前言之前有篇文章聊聊如何利用springcloudgateway实现简易版灰度路由,里面的主人公又有一个需求,他们有个服务是没经过网关的,而是直接通过nginx-ingress暴露出去,现在这个服务也想做灰度,他知道在同个集群如何利用nginx-ingress进行灰度发布,但是现在这个服务是部署在新的集群,他查了......
  • 为什么 Android 和 iOS 下面代码运行结果不同?
    Android和iOS是两个不同的操作系统,它们在底层实现和功能上存在差异。这些差异可能导致相同的代码在Android和iOS上产生不同的运行结果。以下是一些可能引起差异的因素:硬件和体系结构:Android和iOS运行在不同的硬件上,每种硬件都有自己的特性和限制。这些差异可能会影响代码的运行结果......
  • v-show 和 v-if 的共同点和不同点?
    1、相同点:v-show和v-if都能控制元素的显示和隐藏。2、不同点:2.1)实现本质方法不同v-show本质就是通过设置css中的display设置为none,控制隐藏v-if是动态的向DOM树内添加或者删除DOM元素2.2)编译的区别v-show其实就是在控制cssv-if切换有一个局部编译/卸......
  • mybatis sql查询后,返回回来的字段顺序变了;在项目中通过mybatis查询数据库,同样的查询
    问题描述:过程就不看了直接上结果查询语句中的字段顺序信息和返回的字段信息不一致如图:realSql是查询语句,result是查询结果查询语句中的字段顺序信息和返回的字段信息不一致解决方案:转载地址这里复制一份防删......
  • 获取git版本号写入到DLL文件
    stringbaseDirectory=System.AppDomain.CurrentDomain.BaseDirectory;stringprojectDirectory=baseDirectory.Substring(0,baseDirectory.LastIndexOf("\\aspnet-core"));stringfilePath=projectDirectory+"\\aspnet-core\\co......