Wix добавить условие запуска - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь добавить условие запуска в wix, чтобы проверить, включена ли в системе активация HTTP.Я создал управляемое настраиваемое действие, которое будет возвращать ActionResult.Failure или ActionResult.Success в зависимости от того, включено оно или нет.

Моя мысль состоит в том, чтобы затем установить InstallExecuteSequence для вызова настраиваемого действия перед LaunchConditions действие и наличие условия продукта на основе этого.

Кто-нибудь знает, будет ли это работать?Или если есть лучшее решение?

Ответы [ 2 ]

4 голосов
/ 11 февраля 2011

Я бы сказал, что ваше пользовательское действие должно установить определенное свойство в случае, если активирована HTTP-активация. И условие запуска проверит, определено ли это свойство и основано ли оно на том, что оно позволяет продолжить установку или завершится.

Я имею в виду, что нет необходимости сбивать ваш CA, возвращая ActionResult.Failure. Просто установите свойство и позвольте LaunchConditions выполнять свою работу.

0 голосов
/ 15 февраля 2011

Я предполагаю, что под активацией HTTP вы подразумеваете активацию Windows Communication Foundation HTTP.С учетом сказанного ...

Вместо настраиваемого действия нельзя использовать запись реестра для установки свойства, как описано Яном?Например, для совместимости с метабазой IIS6 я использую:

<Property Id="IIS_METABASE_COMPAT">
    <RegistrySearch Id="CheckIisMetabase"
                    Root="HKLM"
                    Key="SOFTWARE\Microsoft\InetStp\Components"
                    Name="Metabase"
                    Type="raw"
                    Win64="no" />
</Property>

И для условия запуска (вышеупомянутое является одним из нескольких свойств в условии запуска):

<Condition Message="IIS6 or IIS 7 is required.  If you are running IIS7 the IIS 6 Metabase Compatibility Feature must be installed.">
    <![CDATA[IISMAJORVERSION="#6" OR (IISMAJORVERSION="#7" AND (IIS_METABASE_COMPAT OR IIS_METABASE_COMPAT_X64))]]>
</Condition>

Я нашел ключпо адресу: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Communication Foundation\HTTPActivation, которые могут или не могут быть полезны для этой цели.Существует также REG_DWORD с именем InstallSuccess в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Communication Foundation, который может быть полезен.

Я не могу найти документацию по любому из них, но я установил оба, и мое значение для InstallSuccess REG_DWORD равно (1)и у меня есть ключ HTTPActivation присутствует.

...