如何使Windows安装程序(WiX)始终认为它正在运行升级或新安装?

sea*_*ean 0 wix

这是SQL数据库的安装程序.它确实不会更改本地计算机上的任何内容,但会连接到数据库以进行更改.

用户可以从一台计算机升级3个不同的数据库服务器,这样他们就可以使用相同的对话框运行3次.

我希望安装程序始终显示我设置的相同自定义对话框.我不希望它进入维护对话框.

我已将MajorUpgrade标记设置为如此,文档中说明了"AllowSameVersionUpgrades"

 <MajorUpgrade AllowDowngrades="yes" />
Run Code Online (Sandbox Code Playgroud)

我尝试更改对话框"下一步"按钮.NewDBDlg是一个自定义屏幕.

 <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="NewDBDlg">1</Publish>
 <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="NewDBDlg">1</Publish> 
Run Code Online (Sandbox Code Playgroud)

这样的工作,但它到达最后一个"VerifyReadyDlg"屏幕,它只是一个空白,只有一个"后退"和"取消"按钮.

我是朝着正确的方向前进还是应该尝试其他方法,例如在安装过程中删除安装?

Chr*_*ter 7

有时我需要创建一个并非真正传统安装程序的.MSI.它更像是一个实用程序,然后是已安装的应用程序.Microsoft有时会使用Microsoft Fix it 系列实用程序来执行此操作.

这是一种不常见的情况,但可以通过禁止某些Windows Installer标准操作来完成:

<InstallExecuteSequence>
  <RegisterProduct Suppress="yes" />
  <PublishFeatures Suppress="yes" />
  <PublishProduct Suppress="yes" />
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

由于产品从未在安装程序服务中注册,因此无需维修,卸载,升级,维护等.