【问题标题】:InstallShield (InstallScript Project): Uninstall files at update - How can I prevent this?InstallShield(InstallScript 项目):更新时卸载文件 - 如何防止这种情况?
【发布时间】:2017-11-06 09:31:14
【问题描述】:

我是 InstallShield 方面的新手,我从一位即将离职的同事那里接手了这个项目。但是,这是我的问题:

我尝试使用从 5.7.17 到 5.7.19 的设置更新 MySQL 服务器,这在大多数情况下都很好用。 我得到了功能“MySQL”,分为“MySQL 数据”(包括 performance_schema 和 mysql 数据库)、“MySQL 服务”(服务批处理文件)和“MySQL Binaries”(文件)。

对于更新,我只是用新的二进制文件更改了二进制文件,其余的都留下了。 选择了所有功能,我的日志告诉我,它会安装目前尚未安装的所有文件,而保留现有文件不变。由于这是一个更新,所以对我来说似乎是正确的。

但有时,在安装过程结束时,它会再次卸载我的 MySQL 功能的几乎所有内容;数据库、批处理文件和几乎所有之前设置未更改的核心文件。但是为什么会这样,我怎样才能阻止我的设置呢?

亲切的问候

【问题讨论】:

    标签: installshield installscript


    【解决方案1】:

    我认为您所描述的是您的包含数据的文件没有得到更新。由于这种类型的文件无法进行版本控制,这是 Windows 安装程序用来确定是否升级文件的,因此您需要将包含此文件的组件标记为 Always Overwrite。查看 Component 表的 MS 文档,了解如何使用 Attributes 字段执行此操作。

    【讨论】:

    • 组件当前确实处于“从不”状态。但是,Always 是 MySQL 源文件的一个可能值,但不适用于 performance_schema 表,该表也由此设置插入,但可能会更改...无论如何感谢您提供的线索,我会尝试一下合适的mysql内容
    【解决方案2】:

    您可能需要检查相关组件的条件。此外,请检查安装顺序以查看它是否按顺序调用卸载。

    【讨论】:

    • 如果他的安装是使用最佳实践创作的,那么安装顺序不应改变。如果数据文件在组件中,那么它可能不会覆盖它。
    • 您的 cmets 包含许多 IF 语句(假设)来对答案进行负面评价。确实,未版本化的文件可能会显示不稳定的行为,但问题似乎表明安装会保持文件不变,然后有时会在最后卸载它们。
    • 我怀疑这是问题所在。我检查了我的脚本代码,并没有发现在安装开始后取消选择功能的任何内容。并且,由于安装了其中的某些部分,因此必须选择它。
    猜你喜欢
    • 2023-04-02
    • 2023-04-09
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多