题
我正在使用 CPack NSIS 生成器来创建安装程序。然而,每次我发布新版本时,我们的用户都会运行新的安装程序,而不会卸载旧版本(这是可以理解的)。
是否可以让安装程序覆盖所有现有文件?如果失败的话,如果已经安装了,有没有办法阻止安装?
另外,我们的 CPack 调用包含在另一个脚本中,作为最后的手段,我是否可以破解/重新配置 project.nsi 文件,以便它执行上述操作之一?
解决方案 2
我的解决方案是分别维护NSIS文件,事实证明并不是额外的努力。
其他提示
您必须编辑 CPack 使用的 NSIS 模板。您可以在 cmake 安装文件夹/Modules/NSIS.template.in 中找到它。
在那里,某个地方,也许在“常规”部分的开头,您可以放置:设置覆盖
尽管我没有机会尝试,但这应该可以解决问题。
有关 SetOverwrite 参数的更多详细信息,请阅读 NSIS 脚本 手动的
不隶属于 StackOverflow