2011-01-19 57 views
0

我正在使用CPack NSIS生成器来创建安装程序。但是,每次我发布新版本时,我们的用户都会在不卸载旧版本的情况下运行新的安装程序(这是可以理解的)。如何使CPack(NSIS)正确升级以进行新安装?

是否可以让安装程序覆盖所有现有的文件?如果没有,那么是否有办法阻止安装,如果它已经安装?

此外,我们的CPack调用被另一个脚本包裹,作为最后的手段,我可​​以破解/重新配置project.nsi文件,以便它执行上述操作之一?

回答

0

我的解决办法是单独维护NSIS文件,原来是没有多少额外的努力。

4

您必须编辑CPack使用的NSIS模板。你可以在你的cmake安装文件夹/ Modules/NSIS.template.in中找到它。

还有,某个地方,也许在常规部分的开头,你可以把: SetOverwrite上

这应该做的伎俩,虽然我没有尝试一下的机会。

有关SetOverwrite的参数的详细信息阅读NSIS脚本manual