Installation 如何通过msi安装更新特定文件

Installation 如何通过msi安装更新特定文件,installation,windows-installer,Installation,Windows Installer,我想做一个安装,它可以是新安装和更新安装。 当它被用作更新安装时,我希望更新一些文件,而不考虑版本和修改日期时间。有些文件永远不会更新 我尝试的是: 将“重新安装模式”设置为“amus”。并将从不更新文件组件的“从不覆盖”属性设置为“是” 我得到的是: 它不起作用。那些带有“从不覆盖=是”的组件仍然会以某种方式更新 我的问题: 是这样吗?重新安装模式的优先级高于组件的“从不覆盖”属性? 如何处理此部分更新问题 提前感谢。MSI有特定的() 我会考虑做一个调查 假设这些文件是未版本化的文件(例如文

我想做一个安装,它可以是新安装和更新安装。 当它被用作更新安装时,我希望更新一些文件,而不考虑版本和修改日期时间。有些文件永远不会更新

我尝试的是: 将“重新安装模式”设置为“amus”。并将从不更新文件组件的“从不覆盖”属性设置为“是”

我得到的是: 它不起作用。那些带有“从不覆盖=是”的组件仍然会以某种方式更新

我的问题: 是这样吗?重新安装模式的优先级高于组件的“从不覆盖”属性? 如何处理此部分更新问题

提前感谢。

MSI有特定的()

我会考虑做一个调查

假设这些文件是未版本化的文件(例如文本/xml配置文件,而不是程序集),我会手动设置我希望始终更新的任何文件的文件版本(手动设置的版本将覆盖已安装的文件),而忽略文件替换逻辑应忽略的其他文件

这里有一个文档提到“a”意味着忽略文件版本控制规则并更新所有内容。不是你想要的。另外,我认为重新安装模式通常用于“修复”操作,而不是安装/升级。

MSI有特定的()

我会考虑做一个调查

假设这些文件是未版本化的文件(例如文本/xml配置文件,而不是程序集),我会手动设置我希望始终更新的任何文件的文件版本(手动设置的版本将覆盖已安装的文件),而忽略文件替换逻辑应忽略的其他文件


这里有一个文档提到“a”意味着忽略文件版本控制规则并更新所有内容。不是你想要的。另外,我认为重新安装模式通常用于“修复”操作,而不是安装/升级。

我们会这样做

  • 将文件安装到程序文件
  • 将默认配置安装到所有用户appdata
  • 如果未找到每用户配置,请将默认配置复制到每用户appdata
  • 这意味着,如果应用了更新,则会重置默认配置,但不会重置每个用户的配置。在MSI更新期间,所有设置等都会被保存,不会被覆盖


    取决于您试图“不更新”的文件,我怀疑您可能可以按照类似的思路进行操作。

    我们会这样做

  • 将文件安装到程序文件
  • 将默认配置安装到所有用户appdata
  • 如果未找到每用户配置,请将默认配置复制到每用户appdata
  • 这意味着,如果应用了更新,则会重置默认配置,但不会重置每个用户的配置。在MSI更新期间,所有设置等都会被保存,不会被覆盖


    根据您试图“不更新”的文件,我怀疑您可能也可以做类似的事情。

    很好的建议!非常感谢。但这个问题是基于一个现有的遗留系统,它不是这样设计的。还是谢谢你。好建议!非常感谢。但这个问题是基于一个现有的遗留系统,它不是这样设计的。还是谢谢你。