如何在WIX中防止降级和重新安装相同版本的应用程序



根据本教程,以下代码应防止降级和重新安装相同版本的应用程序。

  <CustomAction Id='AlreadyUpdated' Error='Foobar 1.0 has already been updated to 1.0.1 or newer.' />
  <CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' />
  <InstallExecuteSequence>
    <Custom Action='AlreadyUpdated' After='FindRelatedProducts'>SELFFOUND</Custom>
    <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom>
  </InstallExecuteSequence>

此功能应如何工作?
是否应该有一些错误消息并应停止安装?
正如我所看到的,这些示例根本不起作用 - 可以使用命令"msiexec/i SampleUpgrade.msi重新安装模式=vomus"多次降级和安装相同版本的应用程序。
没有任何错误消息。
我使用WIX 3.8,Windows 7。

您可能有一些我们不知道的假设,但您不能两次安装相同的 MSI 安装程序。已安装的产品由其产品代码和包代码定义,但更重要的是您要完成什么?如果您想要"相同"产品的多个副本,那么(例如)使用新的产品代码和包装代码制作另一个副本。如果要使用新文件更新现有已安装的产品,请进行重大升级。如果由于某种原因这意味着再次重新安装相同的设置以替换现有设置,那么使用AllowSameSamneVersionUpgrades的WiX MajorUpgrade Element可能是您想要的。重新安装模式命令行是一种更新现有已安装产品的方法,而不是安装其他副本的方法。

换句话说,如果不知道你的目标,就不清楚如何让你到达你想去的地方。

相关内容

最新更新