关于签名NSIS中uninst.exe文件

本文介绍如何预先生成uninst.exe文件并将其集成到setup.exe安装程序中,包括创建单独的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通过访问注册表获取安装路径。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值