Installation 基本MSI安装程序在重新安装时不替换已删除的文件

Installation 基本MSI安装程序在重新安装时不替换已删除的文件,installation,windows-installer,Installation,Windows Installer,我可能会错过一些非常简单的东西,但由于某些原因,在重新安装时,我的基本MSI安装程序(Installshield 2009)不会写入已安装目录中的已删除文件,如果我删除该组件的密钥文件,它会写入整个组件文件,但我删除了重新安装时未写入的非密钥文件。 我尝试在安装前设置卸载自定义操作,但不起作用,我目前正在使用“删除所有文件”自定义操作,在设置浏览对话框位置后触发,这看起来很难看 我确信有一种简单的方法可以实现我想要的。关于“重新安装”或“修复”,我不希望删除任何文件。目的是将安装恢复到原始状态

我可能会错过一些非常简单的东西,但由于某些原因,在重新安装时,我的基本MSI安装程序(Installshield 2009)不会写入已安装目录中的已删除文件,如果我删除该组件的密钥文件,它会写入整个组件文件,但我删除了重新安装时未写入的非密钥文件。 我尝试在安装前设置卸载自定义操作,但不起作用,我目前正在使用“删除所有文件”自定义操作,在设置浏览对话框位置后触发,这看起来很难看

我确信有一种简单的方法可以实现我想要的。

关于“重新安装”或“修复”,我不希望删除任何文件。目的是将安装恢复到原始状态

使用组件和修复:如果组件中有多个文件,除非删除密钥文件,否则修复不会恢复其他文件。最佳做法是每个组件有一个文件,并将该文件作为该组件的关键路径

我也会避免任何“删除所有文件”的自定义操作。如果您有要在卸载时删除的文件,请查看下表


编辑以添加:如果您的文件不是由安装程序安装的,而是程序本身的一些工件。无需使用RemoveFile表或自定义操作来删除MSI本身安装的文件。

感谢您回复我的请求,但是我有很多文件,我不希望每个文件都包含在单独的组件中,当然,在重新安装产品或安装较新版本之前,必须有一个简单地清理目标目录的设置。如果文件不是DLL/exe类型的文件(如.bmp或其他文件),那么是的,您应该将它们全部合并到一个组件中(每个文件夹)ala:如果启动安装程序并设置属性REINSTALLMODE(),您可以拥有比正常情况下更多的安装程序。我已转到DIRECT EDITOR并将REINSTALLMODE参数从omus更改为amus,没有区别,因为我在重新安装时仍然没有获得非密钥文件…您的日志是否显示REINSTALLMODE作为amus持续存在?我认为在重新安装/修复中,除非从命令行设置重新安装模式,否则它将默认返回到初始安装时的状态。