Я экспериментировал с пользовательскими действиями, чтобы зашифровать часть файла 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