Параметры не передаются отложенным пользовательским действиям в WiX

Я написал пример проекта WiX, в котором я пытаюсь сохранить файлы проекта во время установки, а затем удалить эти файлы в процессе удаления. Я написал пользовательские действия для достижения этой цели. Ниже приведен код.

Здесь UninstallCustomAction — это настраиваемое действие для удаления каталога установки. Это отложенное действие, и я пытаюсь передать ему путь installFolder с помощью настраиваемого действия SetCustomActionDataValue. По какой-то причине я не могу получить доступ к этим переменным в CustomActionData сеансов. Что мне здесь не хватает?

<CustomAction Id="SetCustomActionDataValue"
              Return="check"
              Property="Itp.Configurator.WixCustomAction"
              Value="InstallFolder=[INSTALLFOLDER]" />


<CustomAction Id="UninstallCustomAction"
              Return="check"
              Execute="deferred"
              BinaryKey="DTD.LCTOnline.Wix.CustomActions.CA.dll"
              DllEntry="UninstallCustomAction"
              Impersonate="no"
              HideTarget="no"/>
<InstallExecuteSequence>
    <Custom Action="SetCustomActionDataValue"
            Before="UninstallCustomAction"></Custom>
    <Custom Action="UninstallCustomAction"
            Before="InstallFinalize">Installed OR UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>


[CustomAction]
public static ActionResult UninstallCustomAction(Session session)
{
    try
    {
        System.Diagnostics.Debugger.Launch();
        session.Log("Begin Remove Files");
        Directory.Delete(path,true);
        session.Log("End Remove Files");

    }
    catch (Exception ex)
    {
        session.Log("ERROR in deleting Files", ex.ToString());
        return ActionResult.Failure;
    }
    return ActionResult.Success;
}

person user2544690    schedule 03.07.2013    source источник


Ответы (1)


Никаких дополнительных действий не требуется: используйте RemoveFoldersEx в WixUtilExtension.

person Bob Arnson    schedule 03.07.2013