Допустим, у меня есть эта структура каталогов.
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="test" Name="test">
<Component Id="file" Guid="*">
<File Id="file" Source="file.dll"></File>
</Component>
</Directory>
</Directory>
Это установит file.dll в C: \ test. То, что я хочу сделать, это во время перезаписи установки, где этот каталог файлов с C: \ newpath \ и установить файл вместо этого. Я попробовал это с Custom Action без удачи. Я вижу строку отладки, написанную так, что я знаю, что она вызывается, просто файл все еще установлен в C: \ test
<InstallExecuteSequence>
<Custom Action="OverwriteDir" After="CostFinalize" />
</InstallExecuteSequence>
[CustomAction]
public static ActionResult OverwriteDir(Session session)
{
System.Diagnostics.Debug.WriteLine(session["tester"]);
session["tester"] = "C:\\newpath";
return ActionResult.Success;
}
Что я могу сделать по-другому?