electron项目同一壳版本号(目录)实现安装信息和内容不同(少量不同)
一、通过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)如果要更换安装器和卸载器,也是直接更换了之后打包即可,不需要提交代码,待打包结束将其更换回去。
(3)如果安装了这个包之后重新安装一个写入set.ini内容不一样的包,需要卸载原包再安装,覆盖安装set.ini还是原来的数据。
分类:
electronPC项目问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)