WIX условие запуска CustomAction в MergeModule
От: Acteon  
Дата: 16.12.08 15:32
Оценка:
Добрый день.

Второй день бьюсь, может кто поможет.

Вообщем, есть 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>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.