InstallExecuteSequence во фрагменте, не включенном в установщик - PullRequest
9 голосов
/ 24 мая 2011

У меня странная проблема, которая, хотя и не критична, но мне интересно, почему это происходит.

Закончив мой довольно сложный установщик, я решил реорганизовать код и разделить различные задачи на отдельные фрагменты.У меня есть C # CustomAction, который вызывается после действия WriteRegistryValues.

<InstallExecuteSequence>
    <Custom Action="CA_SSLCertGenerateInstall" After="WriteRegistryValues">
        <![CDATA[NOT REMOVE]]>
    </Custom>
</InstallExecuteSequence>

Однако, когда я перемещаю приведенный выше фрагмент из Product.wxs во фрагмент, DLL не включается в установщик и, очевидно, CustomActionне вызывается.

При просмотре документов схемы (http://wix.sourceforge.net/manual-wix3/wix_xsd_fragment.htm) InstallExecuteSequence явно является допустимым потомком фрагмента.

1 Ответ

9 голосов
/ 24 мая 2011

Содержимое фрагмента не будет включено, если вы не ссылаетесь на ЛЮБЫЕ элементы внутри него из элемента Product / Module. Итак, в вашем случае вы должны добавить следующую строку в ваш Product.wxs:

   <CustomActionRef Id="CA_SSLCertGenerateInstall" />

ПРИМЕЧАНИЕ: будет включено все содержимое этого фрагмента, а не только пользовательское действие, на которое вы ссылаетесь.

...