【问题标题】:Removing Install/Repair Option From MSI file Context Menu从 MSI 文件上下文菜单中删除安装/修复选项
【发布时间】:2013-11-19 09:52:49
【问题描述】:

我创建了一个安装程序,当您在控制面板的“添加/删除程序”中右键单击程序名称时,它只会为您提供卸载选项。

但是,问题在于:

1 ) 如果您在安装程序后右键单击 msi,它会显示上下文菜单,为您提供安装/修复选项...

2 ) 如果您双击 exe,它还会提示您一个带有更改/修复选项的维护对话框。

我的问题是如何禁用这些功能/选项?在 exe 文件中包装 msi 不是我们的选择。

我研究了一个与我的非常相似的问题: Remove repair option screen from MSI installer 但似乎无法弄清楚。

对于#2,我在这里找到了答案: http://justinyue.wordpress.com/2008/12/16/how-to-skip-the-maintainancetype-dialog-in-basic-msi-project/

我只是跳过了维护类型对话框。仍然需要#1的答案..

【问题讨论】:

    标签: installation windows-installer installshield


    【解决方案1】:

    不要试图解决 #1。为此,您必须中断有关机器上所有.msi 文件的注册,并且最终用户不应忍受破坏其机器的应用程序。

    对于 #2,您可以调整自己的对话框或对话框序列以提供所需的维护体验(基本 MSI 项目中的InstallUISequenceControlEvent 条目;基于 InstallScript 的 UI 中的 OnFirstUIBefore/OnMaintUIBefore 代码) 正如你所提到的。请注意,如果行为不符合他们的预期,重大更改可能会使您的用户感到困惑,但仅删除“修复”并不算太大。

    但为什么不直接修复呢?

    【讨论】:

    • 感谢您的回答。我当然不想更改用户的默认注册表信息。采取不同的方法,您知道当用户单击 msi 文件上下文菜单上的“修复”时如何不运行安装程序吗?
    【解决方案2】:

    我相信您在进行修复时可能会遇到类型 19 错误 CA 或启动条件,从而阻止安装。一些基于属性的条件应该可以解决问题。

    但真正的问题是,为什么?我只能想象您正试图掩盖安装程序中的一些根本问题。 “修复”并不是调用修复的唯一方式。您可以通过命令运行它,也可以通过快捷方式或 COM 激活来触发它。

    真正的解决方法是解决您的修复不起作用的问题。这通常是由于有人不了解属性没有持久化,因此在修复后它们会被取消。

    【讨论】:

    • 嗨,我知道我来晚了,但是如何停止修复过程?用对话说?
    • 提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多