2017-02-08 3 views
0

Я использую установщик WIX для генерации exe, до сих пор все работает нормально, но теперь мне нужно добавить одно условие обнаружения в пакет exe, как указано ниже.wix не может использовать строку в состоянии обнаружения

<ExePackage 
    Id="AccessRuntime2013" 
    DetectCondition="((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))" > 

MsAccessInstalled это переменная, которая хранит версию мировоззрении установки и MSOffice2013RuntimeInstalled является переменной, которая проверяет, установлен ли во время выполнения доступа или нет. Обе переменные установлены правильно.

Мне нужно запустить этот exe только тогда, когда MsAccessInstalled = "Outlook.Application.15" и MSOffice2013RuntimeInstalled не установлен. Если я запускаю оба условия отдельно, то он работает, но если я забиваю оба, это не работает. Он дает сообщение об ошибке как Failed to parse condition "((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))". Unexpected character at position. Пожалуйста помоги.

+0

«Запись отлична от строк и цифр, в отличие от того, как установщик Windows, это означает, что вам нужно использовать префикс« v ». Добавьте все объявления переменных. –

+0

Не обижайтесь, просто интересно: когда вы набрали все это, вы прочитали его? Это было легко? –

ответ

0

Что происходит, когда вы меняете DetectCondition к

<ExePackage 
    Id="AccessRuntime2013" 
    DetectCondition="MsAccessInstalled ~= &quot;Outlook.Application.15&quot; AND MSOffice2013RuntimeInstalled = 0" 
    ... /> 

Вы также можете проверить свои условия, сделав несколько пробных util:Condition тегов в вашем загрузчике.

<util:Condition Message="MSAccessInstalled condition failed">MsAccessInstalled ~= &quot;Outlook.Application.15&quot;</Condition> 
<util:Condition Message="MSOffice2013RuntimeInstalled condition failed">MSOffice2013RuntimeInstalled = 0</Condition> 

Запустите свой загрузчик и проверьте, не сработало ли какое-либо условие. Не забывайте удалять эти условия, как только вы закончите тестирование, поскольку они вызовут проблемы при вводе в эксплуатацию.