我正在使用installshield 2016的MSI安装程序工作。我正在尝试向卸载添加一个自定义操作,该操作在卸载软件之前运行一个工具。该工具随软件一起安装,需要以管理员模式运行。该工具旨在在卸载开始之前运行一些手动清理操作。在卸载过程中未执行的自定义操作
我已经使用“新建EXE>路径引用目录”使用自定义操作向导添加了自定义操作。 INSTALLDIR在目录表中定义并包含用户定义的安装路径。 .exe和参数的名称是替代品。
工作目录:INSTALLDIR
文件名&命令行:tool.exe /动作参数1参数参数3
退货处理:同步
在脚本执行:在系统上下文
执行schedulintg延迟执行:始终执行
MSI类型号码:3170
在补丁卸载期间运行:否
安装执行顺序:在AnotherCustomAction之后
安装执行条件:
注意:AnotherCustomAction设置为在InstallInitialize之后执行。它与这个非常相似,但正确执行。
(我知道的安装EXEC条件最终应REMOVE =“ALL”,但我删除,在某些时候,以确保不造成问题)
期间INSTALLDIR属性写入注册表安装;我已经添加了AppSearch和RegLocator条目以确保它被回读。
我已经运行安装程序与启用日志记录,并且我看到以下内容:
MSI(S)(30:14)[13:57:19:162]:执行运算:ActionStart(名称= RunTool ,,)
MSI(s)(30:14)[13:57:19:162]:执行op:CustomActionSchedule(Action = RunTool,ActionType = 3170,Source = C:\ Installation Test \,Target = tool.exe/action parameter1 parameter2 parameter3,)
MSI(s)(30:14)[13:57:19:162]:注意:1:1721 2:RunTool 3:C:\ Installation Test \ 4: tool.exe/action parameter1 parameter2 parameter3
Info 1721.此Windows Inst存在问题过敏包。此安装完成所需的程序无法运行。联系您的支持人员或软件包供应商。操作:RunTool,位置:C:\ Installation Test \,命令:tool.exe/action parameter1 parameter2参数3
如果我到了文件夹C:\ Installation Test \并手动运行tool.exe/action parameter1参数2参数3,一切都按照它应有的方式工作。在某个时候,有人提出可能问题是安装路径中存在空间,但是如果尝试使用不带空格的路径,则无法解决此问题。
任何想法这里怎么了?这是正确的方法吗?
我无法提供项目本身(公司政策),但我会尽力回答您可能有的任何其他问题。
AnotherCustomAction计划在哪里?此CA是否安排在InstallInitialize和InstallFinalize之间? –