删除文件时小升级失败



带有WIX安装程序的桌面应用程序。应用程序的版本A包含以下文件:A.dll、b.dll、c.dll。版本B包含文件:B.dll、c.dll、d.dll。执行从A版本到B版本的小升级后,不会替换任何文件。我认为问题出在.dll文件上,该文件存在于a版本中,而不在B版本中。

我们不能在小升级期间删除文件吗?当.dll附加到B版本时,升级将成功结束。

这违反了组件规则。只有主要升级才能删除组件。

https://learn.microsoft.com/en-us/windows/win32/msi/changing-the-product-code

如果以下任何一项适用于更新,则必须更改产品代码:

  • 从现有功能中删除组件

也就是说,有一个变通方法。将组件设置为Transitive=True,并为组件提供一个始终计算为false的条件。您仍然必须在MSI中包含该文件,但如果您愿意,它可以是零字节文件。

这将";穿刺";组件。就MSI而言,该组件仍然存在,并且规则没有被破坏,但该组件将从计算机中删除,因为它会重新评估组件条件并请求将其删除。

相关内容

  • 没有找到相关文章

最新更新