Как я могу использовать Wix для проверки настроек реестра и в зависимости от этого значения выбрать правильный MSI из 2 MSI для установки? Запись в реестре обозначает x86 или x64. Если x64, то установщик Wix должен установить 64-битную Msi. Если x86, он должен установить 32-битную версию.
Я пробовал это, но я просто получаю ошибку при установке, которая говорит
"Этот установочный пакет не может быть открыт. Обратитесь к поставщику, чтобы проверить что это действительный Windows установочный пакет. "
Оба" цепочечных "MSI работают правильно.
Это файл Bundle.wxs и является единственным файлом в проекте Wix. .
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name="SingleInstaller" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="935daa4e-9b25-4fef-a4a1-0cf6af71a939">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
<!--Search the registry entries for each because it may be under Wow6432-->
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\SomeEntry\" Value="Bitness" Variable="MyRegEntry" Win64="no" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\SomeEntry\" Value="Bitness" Variable="MyRegEntry" Win64="yes" />
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!--<MsiPackage SourceFile="D:\Dev\Cwds_Install\bin\x86\Release\JMPS-CC-CWDS3.0.0.0.msi" InstallCondition="Jmps32Bit = x86" Id="Cwds32"/>-->
<MsiPackage SourceFile="D:MyProgram.msi" InstallCondition="MyRegEntry = x86" Id="MyProgram32" />
<MsiPackage SourceFile="D:MyProgram.msi" InstallCondition="MyRegEntry = x64" Id="MyProgram64" />
</Chain>
</Bundle>
</Wix>