如何避免从我的WiX生成的MSI包中触发自我修复?
这是一个Q / A风格的问题,答案只列出了MSI文件中不要做的一些事情,以避免重复自我修复的最常见原因。
自我修复,简单和简短说明:Why does the MSI installer reconfigure if I delete a file?
一般的WiX / MSI建议:这个自我修复的部分与一般MSI问题的原始答案分开:How do I avoid common design flaws in my WiX / MSI deployment solution?
我一直在尝试写关于为开发人员重复MSI自我修复,但最终得到了太多的细节。这是我的最后一次尝试:针对您的WiX / MSI文件中没有做的具体设计建议。其他部署专家,请扩展下面的“陷阱列表”。
我写的早期答案原来是开发人员相关的,但不是开发人员友好的:
我认为还有时间对自我修复有另一种看法。现在我终于可以写出我一直想要的东西:开发人员自我修复的观点 - 为开发人员进行自己的设置开发工作而避免的一些缺陷 - 经常使用WiX框架。只是一个简短,具体的MSI包中无法做的事情列表。
这是一个粗略的初稿。如果时间允许,这些要点将会充实。
%SystemRoot%\Installer
(用于维护安装,修复和卸载)的系统上隔离整个缓存的MSI。发生这种情况时,不可能进行自我修复 - 也不会卸载(!) - 除非您可以访问用于安装的确切原始MSI。在这些情况下,我想你可以尝试一下这里列出的一些选项,让你的MSI卸载恶意软件或误报:Why does MSI require the original .msi file to proceed with an uninstall?或第12节:Uninstalling an MSI file from the command line without using msiexec。