Wix CustomActionData est vide dans CustomAction appelée
encore une fois je suis coincé à un problème, qui est probablement facile à résoudre.
Je veux étendre un setup, créé avec WiX, pour faire des changements dans le fichier de configuration du programme installé. Pour ce faire j'ai créé un CustomAction . Pour pouvoir modifier le fichier de configuration, j'ai besoin de connaître son emplacement (install-)dans mon CustomAction . J'essaie donc de passer L'installation et nom de fichier de mon CustomAction . Voici le problème: L'attribut CustomActionData - est toujours vide et la configuration lance une exception.
mon CustomAction est un fichier C# DLL: DemoDatumErzeugen.CA.dll
. Il contient une méthode DatumEintragen
qui modifie le fichier de configuration. J'essaie d'accéder aux données de cette façon:
string path = session.CustomActionData["LOCATION"];
C'est là que l'exception est levée. J'ai seulement eu l' Message d'erreur allemand, mais il dit quelque chose dans le sens: The supplied key was not found in the dictionary
( Der angegebene Schlüssel war nicht im Wörterbuch angegeben.
).
C'est comme ça que j'essaie de passer les propriétés de mon script de configuration à mon action personnalisée:
<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/>
<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/>
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/>
<InstallExecuteSequence>
<Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
<Custom Action="DemoDatum" After="DemoDatum.SetProperty"/>
</InstallExecuteSequence>
j'ai vu beaucoup d'exemples où il a été fait de la même manière ou au moins très similaire. J'ai essayé beaucoup de choses mais rien ne semble aider comme changer la valeur après dans <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
. CustomActionData est toujours zéro.
Je vérifie avec: session.CustomActionData.Count
Encore une fois, je suis assez reconnaissant pour toute aide ou des conseils où j'ai fait quelque chose de mal.
1 réponses
la valeur de l'attribut Property
de DemoDatum.SetProperty
doit être égale à la valeur de l'attribut Id
de l'action différée. Ainsi, soit vous changez le nom du bien en DemoDatum
, soit vous changez le Id
de l'action différée en DatumEintragen
.