我正在使用 CPack NSIS 生成器来创建安装程序。然而,每次我发布新版本时,我们的用户都会运行新的安装程序,而不会卸载旧版本(这是可以理解的)。

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

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

有帮助吗?

解决方案 2

我的解决方案是分别维护NSIS文件,事实证明并不是额外的努力。

其他提示

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

在那里,某个地方,也许在“常规”部分的开头,您可以放置​​:设置覆盖

尽管我没有机会尝试,但这应该可以解决问题。

有关 SetOverwrite 参数的更多详细信息,请阅读 NSIS 脚本 手动的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top