WIX - 如何使用RemoveFiles

时间:2011-08-24 13:26:35

标签: wix wix3.5 wix3.6

我们有多个配置文件。根据所选环境,将复制正确的文件,并删除其余文件 我正在使用RemoveFile,但这不会删除任何内容,或者可能是我没有正确使用它。在复制完所有文件后,有人可以举例说明在安装过程中从*.config删除[INSTALLDIR]

2 个答案:

答案 0 :(得分:4)

在下面的示例中,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>

答案 1 :(得分:-4)

为什么不选择自定义操作。在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>