1

所以,我运送了这个产品,它有一个像

<Component Id="Rates2012" Guid="{some-guid}">
    <File Id="Rates2012" Name="2012-rates.dbf" KeyPath="yes"/>
</Component>

更新即将发布,我们有该文件的 2013 版本。这是一个不同的组件,具有不同的文件名和 guid。它取代了 2012 版。

我想要的只是在升级时保留该 2012 文件(不删除)。但我不想将它包含在安装程序中,只是为了将其标记为NeverOverwrite.

也就是说,我不介意为此目的包含有关 2012 组件的元数据,但我不想包含实际文件,因为它很大且已过时。

可能我应该把它标记为NeverOverwrite第一次,但我没有。并且应该在卸载时删除该文件。

4

2 回答 2

1

不确定它是否会起作用,但这是您可以尝试的。具有将现有文件复制到临时位置的自定义操作。然后在升级安装中包含一个虚拟小文件。并发布安装另一个自定义操作以从临时位置复制到原始位置。一个hacky,但应该根据您的需要工作。

于 2013-06-22T15:38:54.957 回答
0

不幸的是,Windows Installer 并不真正支持这一点。如果您包含有关文件的元数据,那么您将希望在您的 MSI 已修复并需要实际放回文件的情况下使实际位可用。

这是您希望确保在交付产品之前测试升级方案的场景之一。

于 2013-06-22T14:56:36.477 回答