我有一个MSI安装程序,它有自定义安装程序项目输出,我在安装时添加了一个exe文件来运行。
所以我的MSI安装文件将从源位置复制或删除文件,我的自定义GUI将安装我的窗口服务器调用一些服务器api并更新其登录凭据等东西。
复制和删除文件由MSI控制其操作,因为它作为MSI项目的输出添加。如果我正在安装它将复制文件,或者如果我卸载它将删除文件。
现在我遇到了以下问题 -
1)现在,如果我将去控制面板并尝试卸载我的应用程序,稍后如果我中止它,我的GUI将中止,但MSI将清除所有文件。
2)如果我将从GUI选择卸载,请选择修复。它仍然会删除文件。
所以我的安装程序不是真正的自定义安装程序,它只是同名安装程序。
现在我如何快速修复以上两个选项? 是否有更好的方法来完成这项任务 - >我的原始问题create single click msi file of custom installer of an application?
提前致谢
答案 0 :(得分:1)
听起来你正试图在错误的时间做事。在任何安装系统中,您应该预先收集所有用户输入,然后一旦安装本身启动,在完成所有操作之前不应再有用户输入要求。
确保完整性的最简单方法是仅让用户在UI收集阶段取消,而不是在安装阶段取消。如果您确实希望在安装阶段让用户取消,则必须将其传递给底层引擎,以便它知道取消并回滚到目前为止所做的任何更改。
答案 1 :(得分:0)
在我看来,您需要为启动exe文件执行的操作设置适当的条件。尝试设置类似“未安装”的内容,以便仅在初始安装期间进行,但不能在删除/修复或升级期间进行。