WIX - Как использовать RemoveFiles - PullRequest
3 голосов
/ 24 августа 2011

У нас есть несколько файлов конфигурации.В зависимости от выбранной среды, правильный файл копируется, а остальные файлы должны быть удалены.Я использую RemoveFile, но это ничего не удаляет или, может быть, я не правильно его использую.Может кто-нибудь привести пример удаления *.config из [INSTALLDIR] во время установки после того, как все файлы были скопированы.

Ответы [ 2 ]

4 голосов
/ 17 августа 2012

В приведенном ниже примере RemoveFile используется для удаления всех значков (.lnk расширение) при удалении, также родительская папка будет удалена с помощью RemoveFolder

<DirectoryRef Id="DirName">
  <Component Id="cmpName" Guid="{429BC364-BE5F-4EC8-9AB9-8A522F8EC089}">
    <RemoveFile Id="removeDesktopShortcuts" On ="uninstall" Name="*.lnk"/>
    <RemoveFolder Id="RemoveFolder1" On="uninstall"/>
  </Component>
</DirectoryRef>
0 голосов
/ 24 августа 2011

Почему бы вам не пойти с опцией пользовательских действий.Создайте метод в C # или другом и затем вызывайте его после 'InstallFinalize'.

Пример:

[CustomAction]
public static ActionResult RemoveConfigs(Session session)
{ 
    string configfiles = "\"" + session["INSTALLDIR"].ToString() + "*.config\"" ;
    System.Diagnostics.Process.Start("cmd.exe", "/C del " + configfiles);

    return ActionResult.Success;
}

В CustomAction.wxs добавьте

<Custom Action="ZA_RemoveConfigs" After="InstallFinalize">NOT INSTALLED AND NOT REMOVE</Custom>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...