所以,我发的这个产品有一个像
这样的组件<Component Id="Rates2012" Guid="{some-guid}">
<File Id="Rates2012" Name="2012-rates.dbf" KeyPath="yes"/>
</Component>
更新即将发布,我们拥有该文件的2013版本。这是一个不同的组件,具有不同的文件名和guid。它取代了2012版本。
我想要的只是在升级时将2012文件单独保留(不删除)。但我不想仅仅为了将其标记为NeverOverwrite
而将其包含在安装程序中。
也就是说,我不介意为此目的包含有关2012组件的元数据,但我不想包含实际文件,因为它很大且已经过时。
可能我应该第一次将它标记为NeverOverwrite
,但我没有。并且应该在卸载时删除该文件。
答案 0 :(得分:1)
不确定它会起作用,但这是你可以尝试的。 有一个自定义操作,将现有文件复制到临时位置。然后在升级安装中包含一个虚拟小文件。并安装另一个自定义操作以从临时位置复制到原始位置。 一个hacky,但应该根据你的需要工作。
答案 1 :(得分:0)
不幸的是,Windows Installer并不真正支持这一点。如果您包含有关文件的元数据,那么您将需要在修复MSI并且需要实际放回文件的情况下使实际位可用。
这是您希望在发运产品之前确定test your upgrade scenarios的情况之一。