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

发布时间 2023-12-06 13:51:32作者: nini-

一、通过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)如果要更换安装器和卸载器,也是直接更换了之后打包即可,不需要提交代码,待打包结束将其更换回去