J'ai expérimenté des actions personnalisées afin de crypter une partie du fichier App.Config lors de l'installation (selon how-do-i-encrypt-app-config-file-sections-during-install-with-wix) J'ai le processus CA de base qui fonctionne mais il me manque quelque chose dans ma compréhension des installations Wix/msi.Comment réutiliser une action personnalisée Wix?
Ma configuration Wix pour le CA ressemble un peu à
<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>
Et à l'intérieur du CA sont des références explicites à
session["APPCONFIGPATH"]
session["SECTIONTOENCRYPT"]
Maintenant, pour ma question. Ce que je veux faire est d'exécuter mon CA deux fois mais fournir une valeur différente aux propriétés de SECTIONTOENCRYPT qui sont introduites dedans. Si je devais inventer ma propre syntaxe Wix je tiens à exprimer mes désirs comme:
<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>
Je sais que c'est juste de fantaisie de ma part, mais je ne peux pas sembler obtenir ma tête autour d'exprimer cela dans le déclaratif de Wix format. La seule idée valable que je puisse proposer est de concaténer les chaînes SECTIONTOENCRYPT et de les analyser dans l'AC. Cela fonctionnerait, mais cela ne me semble pas juste - même si c'est peut-être parce que je n'ai aucune expérience dans ce domaine.
Quelqu'un peut-il suggérer une meilleure façon de faire les choses?
Modifier
Il m'a frappé que le principal cas d'utilisation de c'est quand j'ai un seul installateur Wix qui installe plusieurs programmes dans lesquels je veux chiffrer le fichier App.Config