我们有一个用Wix创建的产品安装程序,包含一个程序包("V1")和一些配置文件。现在,我们将使用新的产品代码进行重大升级,在该代码中,该产品的旧版本已卸载,并安装了"V2“。我们想要的是从卸载中保存一个配置文件,因为V2也需要它。不幸的是,我们在交付Permanent="yes"时忘记设置V1选项(read this question获取更多信息)。
这里有一个问题:是否有一种简单的方法来防止文件的卸载?当然,我们可以向脚本中添加一个自定义操作,以便在卸载之前备份文件,然后再添加另一个自定义操作来恢复文件,但是IMHO似乎对此任务过于苛刻,可能会干扰MSI注册过程的其他部分。
编辑:是的,NeverOverwrite="yes"属性已经在V2中设置了,其行为与我所描述的一样。
我不认为直接在V2组件参数中更改某些内容会有帮助。在卸载V1之前,可能有机会在自定义操作中修改注册表,因此安装程序服务认为V1中的配置文件是与Permanent="yes"一起安装的
发布于 2013-01-28 10:08:31
我解决这个问题的方法很简单。我不安装yourapp.config文件,而是只在第一次运行应用程序时安装yourapp.config.new,然后再执行其他操作,检查配置文件。如果没有,请将yourapp.config.new复制到yourapp.config
这很简单,它不使用任何特殊的属性。卸载应用程序时,未卸载配置文件。当应用程序重新安装时,文件会受到干扰。注意,在修复应用程序时,也不会修改配置。
https://stackoverflow.com/questions/2812788
复制相似问题