关于签名NSIS中uninst.exe文件



uninst.exe文件是安装时setup.exe程序生成的,所以在线上机器编译的时候不好签名。 所以uninst.exe必须是在编译的时候就生成了,然后打包到setup.exe中,而不用setup.exe自动生成了。

    现在的问题:
    (1) 如何在编译的时候生成uninst.exe
            可以新建一个nsis工程uninstall.nsi。把setup.nsi里面的Function un.XX,都移到uninstall.nsi中去。
            section install中只保留:
                    WriteUninstaller "$INSTDIR\Uninst.exe"
            注意添加静态安装:SilentInstall silent
            同时: ShowInstDetails hide \n ShowUninstDetails hide。
            编译uninstall.nsi,并运行,就会静态的在制定的目录下生成了uninst.exe。然后签名它。
    (2) 如何把生成的uninst.exe打包到setup.exe中
            setup.nsi中,用包含dll的方法包含uninst.exe文件,同时去掉:
                WriteUninstaller "$INSTDIR\uninst.exe"
    
    (3) 事先生成uninst.exe有一个问题,就是安装路径。如果是用户选择安装路径,生成uninst.exe的时候就不知道安装路径具体的值。
            即使是不让用户选择安装路径,不同系统上路径也会不一样的。所以uninst.exe点击卸载的时候就找不到正确的安装路径。
            解决方法:通过在setup.nsi把安装路径写入指定的注册表路径中的,uninst.exe通过访问注册表获取安装路径。
# ====================== 自定义宏 产品信息============================== !define PRODUCT_NAME "BotAgent" !define PRODUCT_PATHNAME "WillingBotAgent_PC" #安装卸载项用到的KEY !define INSTALL_APPEND_PATH "WillingBotAgent" #安装路径追加的名称 !define INSTALL_DEFALT_SETUPPATH "" #默认生成的安装路径 !define EXE_NAME "WillingBotAgent.exe" !define PRODUCT_VERSION "4.0.0.0" !define PRODUCT_PUBLISHER "武汉慧灵控科技有限公司" !define PRODUCT_LEGAL "武汉慧灵控科技有限公司 Copyright(c)2017" !define INSTALL_OUTPUT_NAME "Test.exe" # ====================== 自定义宏 安装信息============================== !define INSTALL_7Z_PATH "..\app.7z" !define INSTALL_7Z_NAME "app.7z" !define INSTALL_RES_PATH "skin.zip" !define INSTALL_LICENCE_FILENAME "licence.rtf" !define INSTALL_ICO "logo.ico" !define UNINSTALL_ICO "uninst.ico" #SetCompressor lzma !include "ui_nim_setup.nsh" # ==================== NSIS属性 ================================ # 针对Vista和win7 的UAC进行权限请求. # RequestExecutionLevel none|user|highest|admin RequestExecutionLevel admin ; 安装包名字. Name "${PRODUCT_NAME}" # 安装程序文件. OutFile "..\..\Output\${INSTALL_OUTPUT_NAME}" ;$PROGRAMFILES32\Netease\NIM\ InstallDir "$PROGRAMFILES64" # uncomment the following line to make the installer silent by default. SilentInstall silent # 安装和卸载程序图标 Icon "${INSTALL_ICO}" UninstallIcon "${UNINSTALL_ICO}" 这段脚本代码有什么作用
最新发布
03-14
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值