我有一个小问题。
在卸载过程中,哪个操作会删除已安装的产品信息(通过PublishProduct操作广告)?
提前感谢。
答案 0 :(得分:9)
简短回答:InstallFinalize。
答案很长:归结为InstallExecuteSequence
总是会被删除。我对blog进行了更深入的调查。
答案 1 :(得分:2)
坦率地说,我从不使用广告,但如果我猜测我会说广告序列定义了广告期间运行的InstallExecuteSequence的子集,并且广告产品的实际卸载实际上正在运行完整的InstallExecuteSequence在卸载模式下运行UnPublishComponents,UnPublishFeatures等标准操作......我认为这是合乎逻辑的,因为某些功能可能已经按需安装,并且需要完全卸载才能清理。
测试此方法的一种方法是在InstallExecuteSequence中插入消息框以确定运行的序列。我现在还没有测试这个所需的工具。再次,直到我用插入到序列中的调试脚本测试了这个,我无法确定任何事情。
MSI SDK和Installshield's help file可能会提供一些线索。 最后,我想问你为什么需要知道哪些操作会卸载产品信息?也许我们可以提供一种不同的方式来实现您想要做的事情。 MSI的许多重点是将大部分工作留给标准化行动,干扰这些过程并不好。习惯 行动应仅用于那些永远无法通过标准行动获得的东西。