У меня есть служба Windows, и при ее запуске он регистрирует вложенные файлы журналов в месте установки службы Windows. Я пытаюсь написать настраиваемое действие, которое удалит указанные файлы только при удалении. Однако, когда он запускается, я получаю сообщение об ошибке «УСТАНОВКА - неправильная директория». Я предполагаю, что мне нужно изменить при выполнении пользовательского действия в предложении «После =»?», Но я не уверен, что это должно быть.CustomAction при удалении, где установлено INSTALLLOCATION
Это текущий код для файла .wxs
<Binary Id="CustomActionEXE" SourceFile="$(var.MyApp.TargetDir)MyApp.CA.dll" />
<CustomAction Id="RemoveLogFilesCA" BinaryKey="CustomActionEXE" DllEntry="RemoveLogFiles" Execute="immediate" Return="check"/>
<InstallExecuteSequence>
<Custom Action="RemoveLogFilesCA" After="RemoveFiles">
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
</Custom>
</InstallExecuteSequence>
и пользовательских действий код
public class CustomActions
{
[CustomAction]
public static ActionResult RemoveLogFiles(Session session)
{
// Error here: "INSTALLLOCATION is an invalid directory", value not set when the custom action is being executed After="RemoveFiles"
//string installLocation = session.GetTargetPath("INSTALLLOCATION");
return ActionResult.Success;
}
}