3 回答
TA贡献1824条经验 获得超6个赞
Windows Installer是一种部署技术,它的工作是安装指定的文件和注册表设置,并将它们保留在指定的安装位置,并确保它们是正确的版本-为此目的,自我修复或弹性是一种机制。它的操作与开发人员即时交换文件以进行调试,开发和测试的需求相冲突。
作为开发人员,您可能有兴趣部署MSI,然后动态删除或替换文件以调试内容。在这些情况下,MSI可能会令人讨厌,因为它永远不会停止执行其工作,并且会重新安装正确的文件。这就是所谓的“ 自我修复 ”,可能会很烦人!:-)。
解决此问题的方法很多,MSI相当复杂。由于通常通过“ 广告快捷方式 ” 调用“自我修复” ,因此避免此MSI功能的最简单方法是直接从文件系统而不是通过快捷方式启动EXE文件。除了最复杂的EXE文件外,这将绕过MSI自修复机制。您也可以在桌面上手动创建一个不公开的快捷方式,该快捷方式不会触发自我修复。
对于记录,自我修复由“ 自我修复入口点 ” 触发,以进行密钥路径验证。它们包括公告的快捷方式,文件关联,COM注册表数据等。
自我修复或弹性是它的正式名称,还有很多其他内容,请查看这篇有关自我修复问题的综合文章,以找到解决特定问题的方法。这是一篇很长的文章,但是如果您有自我修复问题,则值得阅读。
TA贡献1911条经验 获得超7个赞
我知道我在这方面迟到了,但是我发现将'NeverOverwrite =“ yes”'添加到要在安装后修改的文件的组件定义中,会从撤消我的更改。
这几乎解决了我的自我修复问题。我将此添加到了MSI中的所有配置文件和批处理文件中。
- 3 回答
- 0 关注
- 648 浏览
添加回答
举报