使用 installshield 进行升级时,.ini 文件未 modified/updated,因为升级时未删除某些文件夹

.ini file not being modified/updated when doing an upgrade with installshield since some folders are not being deleted when upgrading

不久前,我找到了一份新工作,负责开发公司创建的一种工具,旨在让人们在使用 AWR 时的生活更轻松。

我已经成功完成了多项修复和改进,我可以通过 HotFix 安装程序进行分发(只需覆盖已经存在的文件)。

我对工具的最新 change/addition 要求我为该工具创建一个完整的安装程序。此特定工具始终安装 2 个版本,即 current/new 和 previous/old,以便为用户提供更平稳的过渡。我以前从未做过安装程序,所以我边学边学。

我能够通过简单地 updating/adding/removing 文件和文件夹使用以前的 installshield 项目创建安装程序。当计算机上没有安装该工具的版本并且安装位置上没有任何版本的 files/folders 时,这非常有效。

我在网上查了一下,发现要制作一个可以在以前版本上安装的安装程序,我需要使用 installshield 进行重大升级,我在阅读之后确实这样做了。现在安装程序成功安装了旧版本,它成功地将新文件和文件夹放在它们的位置,但总是留下一个特定的空文件夹,即 1.1.1 版本的文件夹。

直到我意识到 .exe 未能修改它需要修改的 .ini 文件以让 AWR 知道在何处查找脚本之前,这似乎不是问题。我查看了 .exe 代码,在 运行 进行了一些测试后,运行 单独进行了测试,我意识到 .exe 不是问题所在,它正确地完成了工作。经过多次测试,我发现只要这些空文件夹存在,就无法修改 .ini 文件。我不知道为什么,因为 .ini 文件几乎是一个 .txt 文件,对 1.1.1 文件夹有某种依赖性是没有意义的。

所以我的问题是两个问题之一,要么我必须想出一种方法来确保升级删除那些 1.1.1 文件夹,要么找到一种方法来修改 .ini 文件,但这些文件夹仍然存在。我在网上看过,每个解决方案都需要 me/the 用户手动执行某些操作,我被要求让安装程序在使用时简单地工作。他们要求我这样做,以便安装程序处理所有事情,用户除了 运行 安装程序之外不应该做任何事情。

由于安装程序可以正常工作,只要这些文件夹不存在,我认为确保安装程序删除它们是最好的方法,但我卡住了,我不知道如何继续。

感谢您就此问题提供的任何建议和帮助。

解决方法: 删除了我需要确保从组件列表中更新的所有文件,并将它们重新添加到 installshield 项目中。 由于这样做,所有内容都已正确更新并且文件夹已删除,因为 .exe 是正确的。