У меня проблема с wix и управляемыми настраиваемыми действиями: мне уже удалось создать управляемое настраиваемое действие, и его вызвали из установщика (это было проверено в файлах журнала установки). Моя проблема сейчас в том, что мне не удалось передать данные в пользовательское действие. Afaik, если я решу запустить пользовательское действие на такой поздней стадии, я должен пометить действие как «отложенное». С этим ограничением возможно получить доступ только к свойству CustomActionData Property? Почему это не работает в моем случае? (Насколько я вижу, я все правильно перенял из образцов?)
Вот что я уже пробовал:
Пользовательское действие:
public class CustomActions
{
[CustomAction]
public static ActionResult RegisterDflHelp(Session session)
{
session.Log("Begin CustomAction1");
session.Log("Before Access to customactiondata");
//string helpdir = session["HELP_DIR"];
string cad = session["CustomActionData"];
Debugger.Break();
session.Log("Help dir is: " + helpdir);
session.Log("Custom Action Data is: " + cad);
return ActionResult.Success;
}
}
Модуль слияния, который вызывает настраиваемое действие:
<CustomAction Id='RegisterDflHelp' BinaryKey='RegisterDflHelpDll' DllEntry='RegisterDflHelp' Execute='deferred' />
<CustomAction Id="HELP_DIR.SetProperty" Return="check" Property="HELP_DIR" Value="Teeest" />
<Property Id='HELP_DIR' Secure='yes'/>
<InstallExecuteSequence>
<Custom Action='HELP_DIR.SetProperty' After='InstallFiles' />
<Custom Action='RegisterDflHelp' After='HELP_DIR.SetProperty' />
</InstallExecuteSequence>
<Directory Id="TARGETDIR" Name="SourceDir">
</Directory>
<ComponentGroupRef Id="HelpGroup"/>
Продукт, который включает модуль Help-Merge:
<Product....>
<Package....>
...
<Directory>
<!--Directory which gets the help folder--!>
<Merge Id ="DflHelpInstaller" SourceFile="DflHelpInstaller.msm" Language="1033" DiskId="1" />
Есть идеи? Заранее спасибо!!
Daniel
Кстати: что также было бы интересно узнать: на каком этапе процесса установки действие, помеченное как отложенное? И если бы мне удалось это вызвать мои пользовательские действия до этого этапа. В чем преимущество?