Как повторно использовать настраиваемое действие Wix?

Я экспериментировал с настраиваемыми действиями, чтобы зашифровать часть файла App.Config при установке (согласно how-do-i-encrypt-app-config-file-section-during-install-with-wix) У меня работает базовый процесс CA но мне что-то не хватает в моем понимании установок Wix / msi.

Моя конфигурация Wix для CA немного похожа на

<Binary Id="ENCRYPTSECTIONCADLL" 
            SourceFile="(path to CA DLL)"/>

<Property Id="APPCONFIGPATH" Value="(Path to Exe file)" />
<Property Id="SECTIONTOENCRYPT" Value="(Section of App.Config to Encrypt)" />

<CustomAction Id="ENCRYPT_SECTION"
              BinaryKey="ENCRYPTSECTIONCADLL"
              DllEntry="EncryptConfig"
              Execute="immediate"
              Return="check"
              HideTarget="no"
              Impersonate="no" />

<InstallExecuteSequence>
    <Custom Action="ENCRYPT_SECTION" After="InstallFinalize" />
</InstallExecuteSequence>

А внутри ЦС есть явные ссылки на

session["APPCONFIGPATH"]
session["SECTIONTOENCRYPT"]

А теперь вопрос. Я хочу выполнить свой CA дважды, но передать другое значение свойствам SECTIONTOENCRYPT, которые передаются в него. Если бы мне пришлось изобрести собственный синтаксис Wix, я бы выразил свои желания так:

<InstallExecuteSequence>
    <Custom Action="ENCRYPT_SECTION" 
            After="InstallFinalize"
            APPCONFIGPATH = "(Path to Exe File)" 
            SECTIONTOENCRYPT = "(Section #1)" />

    <Custom Action="ENCRYPT_SECTION" 
            After="InstallFinalize"
            APPCONFIGPATH = "(Path to Exe File)" 
            SECTIONTOENCRYPT = "(Section #2)" />

</InstallExecuteSequence>

Я знаю, что это просто фантазия с моей стороны, но, похоже, я не понимаю, как выразить это в декларативном формате Wix. Единственная верная идея, которую я могу придумать, - это объединить строки SECTIONTOENCRYPT и проанализировать их внутри CA. Это могло бы сработать, но мне это просто не нравится - хотя, возможно, это потому, что у меня нет опыта в этой области.

Может ли кто-нибудь предложить лучший способ делать что-то?

Изменить

Меня просто поразило, что в основном это используется, когда у меня есть один установщик Wix, который устанавливает несколько программ, в которых я хочу зашифровать файл App.Config.


person Peter M    schedule 16.07.2010    source источник


Ответы (1)


После того, как SO явно не проявил интереса, я думаю, что нашел свое решение в другом вопросе SO: как передать свойства msiexec настраиваемому действию wix c

person Peter M    schedule 20.07.2010