Добрый день.
Второй день бьюсь, может кто поможет.
Вообщем, есть Merge Module содержащий некий драйвер устройства. Он должен скопировать этот драйвер и запустить его установку, что и делается в CustomAction InstallSmartCardReaderDriver.
Есть еще инсталятор который включает в себя этот Merge Module в одну из Feature, и она может не быть выбрана для установки. И когда это происходит Component DPInstx86.exe не устанавливается, а CustomAction InstallSmartCardReaderDriver все равно выполняется. Естественно происходит ошибка.
Собственно вопрос, как проверить был ли установлен Component перед выполнением CustomAction?
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Module Id="MMSmartCardReaderDriver" Language="1033" Version="0.2.0.0">
<Package Id="c9e4ff95-5854-4a7f-99af-53d9f06afd0d" Manufacturer="MMSmartCardReaderDriver" InstallerVersion="200" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="MergeRedirectFolder" Name="MergeRedirectFolder">
<Directory Id="CardReader" Name="CardReader">
</Directory>
</Directory>
</Directory>
<DirectoryRef Id="CardReader">
<Component Id="DPInstx86.exe" Guid="{64CFDA68-3B16-485F-8C0F-274EE0E4B568}">
<File Id="DPInstx86.exe" Name="DPInstx86.exe" KeyPath="yes" Source="..\..\..\SharedBinaries\Drivers\CardReader\DPInstx86.exe"/>
</Component>
</DirectoryRef>
<CustomAction Id="InstallSmartCardReaderDriver" FileKey="DPInstx86.exe" Execute="commit" ExeCommand="" Return="ignore"/>
<InstallExecuteSequence>
<Custom Action='InstallSmartCardReaderDriver' After='InstallFiles'/>
</InstallExecuteSequence>
</Module>
</Wix>