在日常开发中,我们市场会调用一些其它的第三方东西,甚至是为了当前软件,我们会安装一些环境,比如C++环境,或者是.net 环境等等。 例如:我现在有一个wpf开发的软件,它携带了许多第三方的环境跟其它软件。 我利用nsis 将它合并成一个安装包,现在我来开始运行它。
初始化打开页面。
当我点击下一步的时候与其它软件安装无异
第三步install 安装它
这时候如果它附带了许多其它软件或者环境,这时候就会有若干个安装框弹出,需要你手动点击下一步。
如果用户是个新手,那这无疑给用户带来了麻烦,到底是安装还是不安装。如图所示,左侧安装还没结束,结果右侧又弹出了一个需要你安装的。 用户:???卸载!
经过深思熟虑,最后觉得如果有个办法能够在软件安装的时候将第三方你所需要的其他包进行静默安装(也就是用户不用点击下一步)。只显示主安装框,那岂不是美哉。
那有没有什么办法能够打成安装包的时候将附带的第三方软件进行静默安装,只预留自己的主软件进行手动就可以呢?
答案是:
有
初入
nsis 有一个命令可以在打包时候将自己的安装进行静默。
SilentInstall silentSilentUninstall silent 复制代码
就是上面命令,只需要将它写在nsis的 section 之前即可。
然后我就兴高采烈的去尝试了一番。 结果。 !!! 啥玩意~ 啥都不显示。一脸懵逼的就结束了?
晋级
不过还好,继续在nsis文档中查询找到了如下选项 原来,SilentInstall 还有三个参数,不止 silent 一个!
唉,人真的是不能心急啊。差点又怀疑自我。
于是乎,按照文档所示
SilentInstall normal|silent|silentlog
取了三个参数中的其中一个参数,normal。按需静默。 也就是说。可以在你指定的命令行后添加对应标识,即可对它进行静默安装。
而添加按需静默也很简单! 就是。在命令行后 添加 /S 即可!
结果
于是,结束之后,我再次运行编译。 不出所料。成功了!!!
总结
好了,中秋节假日前的最后一个下午,摸鱼结束。收拾收拾准备下班~! 也希望各位同学,下次碰到类似问题后不要跟我一样心急。 先看看,后面可能还有更可爱的~ 哈哈哈哈