Как повторно использовать настраиваемое действие Wix? - PullRequest
1 голос
/ 17 июля 2010

Я экспериментировал с пользовательскими действиями, чтобы зашифровать часть файла App.Config при установке (в соответствии с how-do-i-encrypt-app-config-file-section-into-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"]

Теперь на мой вопрос.То, что я хочу сделать, это выполнить мой ЦС дважды, но указать другое значение для свойств 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

1 Ответ

0 голосов
/ 21 июля 2010

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

...