Windows installer InstallShield 2010没有';不要卸载功能

Windows installer InstallShield 2010没有';不要卸载功能,windows-installer,installshield,uninstallation,Windows Installer,Installshield,Uninstallation,我在正确卸载InstallShield 2010创建的MSI时遇到问题。根据日志,我的InstallShield项目包含5种不同的功能,所有这些功能都已正确安装 安装日志 Action start 14:17:21: InstallValidate. MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91c

我在正确卸载InstallShield 2010创建的MSI时遇到问题。根据日志,我的InstallShield项目包含5种不同的功能,所有这些功能都已正确安装

安装日志

Action start 14:17:21: InstallValidate.
MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91cda6f92ea4989c01c65f841e520'.
MSI (s) (60:48) [14:17:21:819]: Feature: F1; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F2; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F3; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F4; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F5; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (38:04) [14:31:09:730]: Doing action: InstallValidate
Action ended 14:31:09: SetODBCFolders. Return value 0.
MSI (s) (38:04) [14:31:09:730]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '63009fbd7945fe4d8897ff58c1aa8e21'.
MSI (s) (38:04) [14:31:09:730]: Feature: F1; Installed: Absent;   Request: Null;   Action: Null
MSI (s) (38:04) [14:31:09:730]: Feature: F2; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F3; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F4; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F5; Installed: Local;   Request: Absent;   Action: Absent

但是,当我尝试使用相同的MSI卸载时,其中一个功能会显示为未安装,随后不会卸载

卸载日志

Action start 14:17:21: InstallValidate.
MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91cda6f92ea4989c01c65f841e520'.
MSI (s) (60:48) [14:17:21:819]: Feature: F1; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F2; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F3; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F4; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F5; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (38:04) [14:31:09:730]: Doing action: InstallValidate
Action ended 14:31:09: SetODBCFolders. Return value 0.
MSI (s) (38:04) [14:31:09:730]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '63009fbd7945fe4d8897ff58c1aa8e21'.
MSI (s) (38:04) [14:31:09:730]: Feature: F1; Installed: Absent;   Request: Null;   Action: Null
MSI (s) (38:04) [14:31:09:730]: Feature: F2; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F3; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F4; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F5; Installed: Local;   Request: Absent;   Action: Absent
安装最新的MSI时,卸载后的日志与上面的安装日志类似。即使MSI未将F1功能视为已安装并重新安装,但由于卸载失败而在系统上已存在的所有文件不会被更新的文件覆盖


任何帮助都将不胜感激。提前感谢您。

您可能会看到以下生成警告:

Val0005:功能“XXXXXXX”的条件可能会在运行时将此功能的InstallLevel设置为零。如果此功能在安装时启用,则必须编写类似的逻辑,以确保在维护模式下也启用了此功能,否则在升级中此功能将被忽略


基本上,如果安装了此功能,您必须确保在维护期间不会将其设置为0。如果是这样,它将被忽略,就像您看到的一样。

我也遇到过类似的问题。
需要检查的事项:

Installshield组件,禁用共享以防止引用计数
组件共享:否

检查注册表中的引用计数。搜索此列表以查找文件: HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLS
如果您开发了一个早期的错误安装程序,那么错误的引用计数可能仍然存在。您可以通过在新的unique文件夹中安装来验证这一点,并查看问题是否仍然存在

Installshield,检查有无重复组件。由于一个旧条目未完全删除,同一文件可能安装了两次

打开详细日志记录以进行调查:

日志文件名MSI*.Log将以例如C:\Users\name\AppData\Local\Temp结束
搜索未卸载的文件并与其他文件进行比较。

在我的例子中,Action:Null表示坏的,Action:缺席表示其他

F1功能是否有条件安装?如果是,您是如何配置条件的?F1是有条件地以以下级别0安装的:(IIS_版本>=“#7”)和(NETVERSION>=“3.5.30729.01”)和(ORACLEVERSION>=“11.1.0.7.0”)以及(POWERSHELLVERSION>=“2.0”)和(wsevervion>我已从该功能中完全删除了该条件,现在它似乎正在正确卸载。现在,我将继续使用该条件,直到我找到卸载时它不起作用的原因。谢谢!