我使用WiX Toolset 3.10.2为我的产品构建安装程序。防止多次安装
解决方案中有两个WIX项目,一个是从编译的二进制文件构建MSI,另一个是使用WixStandardBootstrapperApplication从MSI构建setup.exe。
如果我增加版本,它工作正常,提供升级。
如果我第二次启动相同的安装程序,它工作正常,打开“修改安装程序”屏幕。
问题是,在重建安装程序而不增加版本后,它无法检测到以前的安装,并且第二次安装愉快(因此“卸载”控制面板有多个相同的项目)。
如何阻止该问题,并且只允许单个安装的产品实例?
微星:
<?include "..\Version.wxi"?>
<Product Id="*" Name="xxx" Language="1033" Version="$(var.vvvVersion)"
Manufacturer="yyy" UpgradeCode="0d88cab0-d278-43bb-b891-607bc01c4dec" >
<MajorUpgrade DowngradeErrorMessage="A newer version of xxx is already installed." />
的EXE:
<?include "..\Version.wxi"?>
<Bundle Name="xxx" Manufacturer="yyy" Version="$(var.vvvVersion)"
UpgradeCode="eac46fb0-09d1-4c29-8fc1-984dddb35e50"
IconSourceFile="$(var.SolutionDir)applicationIcon.ico" >
即使他这样做(目前有一个讨论,以默认启用),MSI将展示类似的问题,而不升级版本。实际上,我为您的MSI添加了支持年份,以提取文件版本和捆绑包以提取产品版本: 您也可以更改MSI的升级表以允许相同版本的升级 - 这是测试相同版本的后续版本中的任何更改所必需的。 –
Heath