我已经在Visual Studio 2008中的问题是,在安装后,如果我删除任何已安装的文件创建的MSI安装程序包。 这不是我的我的安装包预期的行为。 我的文件安装属性有:
PackageAs vsdpaDefault永久假只读虚假注册vsdrfDoNotRegister系统传递虚假虚假假命门
如果这是微不足道的,请原谅我。 我简直不敢相信我一直没能得到谷歌放弃了答案。 :)
我已经在Visual Studio 2008中的问题是,在安装后,如果我删除任何已安装的文件创建的MSI安装程序包。 这不是我的我的安装包预期的行为。 我的文件安装属性有:
PackageAs vsdpaDefault永久假只读虚假注册vsdrfDoNotRegister系统传递虚假虚假假命门
如果这是微不足道的,请原谅我。 我简直不敢相信我一直没能得到谷歌放弃了答案。 :)
Windows安装程序是一种部署技术 ,它的工作是安装指定的文件和注册表设置,并保存在指定的安装位置,并确保他们是正确的版本-自我修复或弹性是一种机制来实现这一目标。 它的操作与开发人员的需要在飞行中进行调试,开发和测试交换文件相冲突。
作为开发人员,你可能有兴趣在部署您的MSI,然后删除或在飞行替换文件调试的事情。 在这种情况下,MSI可能是讨厌,因为它永远不会停止做的工作,并会重新安装正确的文件。 这就是所谓的“ 自我修复 ”,可以是壮观烦人! :-)。
有很多的方法来解决这个问题,微星是相当复杂的。 由于“自我修复”通常从“ 广告快捷方式 ”,以避免这种MSI功能最简单的方法调用是直接从文件系统,而不是通过一个快捷方式启动的EXE文件。 这绕过了所有,但最复杂的EXE文件的MSI自我修复机制。 您也可以手动在桌面上创建一个非宣传的快捷方式,将不会触发自我修复。
备案自我修复由“触发自我修复入口点 ”的关键路径验证。 它们包括标榜的快捷方式,文件关联,除其他事项外COM注册表数据。
有自我修复 ,或弹性是它的官方名称多了很多,请在自我修复的问题,这种全面的文章要想方设法解决您的具体问题。 这是一个很长的文章,但它应该是值得的阅读,如果你有自我修复的问题。
UPDATE,2018年10月 :
自我修复说明 :比任何人想了解自我修复:
类似: 的Visual Studio 2015年微星构建启动另一个安装
它的设计,被称为“弹性”: http://www.msifaq.com/a/1037.htm 。
我知道我迟到对这个党,但我发现,加入“NeverOverwrite =‘是’”为那些旨在进行修改,在安装后的文件(S)的组件定义,从停止自我修复撤消我的变化。
这几乎已经解决了我的自我修复问题。 我已将此添加到MSI内的所有配置文件和批处理文件。