2014-09-11 4 views
1

Мне нужно установить флажок, чтобы установить драйверы после установки программы (так же, как запустить программу). Дополнительная проблема заключается в том, что драйвер зависит от платформы системы. Я пытаюсь сделать это так:WiX custom action платформой

<CustomAction Id="RunProgram" Directory="INSTALLFOLDER" ExeCommand="[INSTALLFOLDER]Application.exe" Return="asyncNoWait"/> 
<CustomAction Id="RunDriver64" Directory="INSTALLFOLDER" ExeCommand="[INSTALLFOLDER]driver/Installer_x64.exe" Return="asyncNoWait"/> 
<CustomAction Id="RunDriver32" Directory="INSTALLFOLDER" ExeCommand="[INSTALLFOLDER]driver/Installer_x86.exe" Return="asyncNoWait"/> 
<InstallExecuteSequence> 
    <Custom Action="RunDriver64" After="InstallFinalize">'$(var.Platform)' != 'x64'</Custom> 
    <Custom Action="RunDriver32" After="InstallFinalize">'$(var.Platform)' == 'x64'</Custom> 
</InstallExecuteSequence> 
<UI> 
    <Publish Dialog="ExitDialog" Control="Finish" Order="2" Event="DoAction" Value="RunProgram"> 
    WIXUI_EXITDIALOGOPTIONALCHECKBOX 
    </Publish> 
</UI>` 

но это не работает. Сообщение об ошибке:

Ошибка 1 ICE03: Плохая условная строка; Таблица: InstallExecuteSequence, Колонка: Состояние, ключ (ы): RunDriver64 F: .. путь .. \ Product.wxs 26 1 ..project имя ..

Кроме того, мое решение не является совершенным, так как я запустив там действие, которое я действительно не хочу «RunProgram», но я не мог создать пустое действие. Любые предложения, как я могу это сделать?

Благодаря

ответ

0

Вам нужно обернуть его в CDATA

Попробуйте <![CDATA[NOT(VersionNT64)]]> и <![CDATA[(VersionNT64)]]> вместо '$(var.Platform)' != 'x64' и '$(var.Platform)' == 'x64'

+0

Окей, что предотвращает ошибку. Возможно, вы знаете, как я могу решить вторую проблему для подключения одного из этих двух действий к элементу публикации? Я пытался запустить его перед другим пустым пользовательским действием, вызванным публикацией, но я не могу создать пустые пользовательские действия. – Tester

+1

У публикации могут быть условия. Если вы посмотрите здесь, вы увидите пример PIDACCEPTED = "0". http://wix.tramontana.co.hu/tutorial/events-and-actions/control-your-controls, а затем вы можете установить стандартные свойства установщика Windows, такие как VersionNT64 и т. д. – PhilDW

+0

Это очень помогло. Спасибо! – Tester

Смежные вопросы