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