1

首先,我知道关于 SO 有类似的问题,但我还没有看到任何适合我的问题的答案。

InstallShield 2009 安装我的程序,我的程序会创建一个 ini 文件。当程序卸载时,它会留下 ini(因为它不在原始安装中)。我尝试在直接编辑器中使用 RemoveFile。我给了它属性,正确的安装模式,但我不知道“组件”是什么,或者我应该用它做什么。我浏览了每个 InstallShield 帮助文件并在线查看,但所有描述“组件”的内容都非常模棱两可。调试器不会抛出与 RemoveFile 相关的任何错误或警告,但当我运行新的卸载程序时,该文件会继续保留。我已经在这个问题上苦苦挣扎了好几天,并且在 RemoveFile 中尝试了各种方法,但都无济于事!

简单...我只想删除一个位于安装可执行文件的安装目录中的ini。解决此问题的最简单方法是什么,“组件”是什么?

4

1 回答 1

2

Windows Installer 需要该组件来检测是否完全处理“删除文件指令”。我引用这个词是因为实际上没有这个词——只是为了便于解释。

因此,如果组件计划安装(包含在正在安装的功能中,条件解析为 true),并且 InstallMode 是“安装时删除或两者都删除”,Windows 安装程序将尝试查找您在 FileName 中指定的文件位于 DirProperty 中,并将尝试将其删除。

如果组件计划删除,并且 InstallMode 是“卸载时删除或两者都删除”,则相同的逻辑将在卸载时起作用。

如果不安装/卸载组件(例如,正在安装另一个功能或条件为假),Windows Installer 将忽略“删除文件指令”。

希望这现在更有意义。

于 2011-08-30T17:06:23.013 回答