我正在尝试使用RemoveFolderEx删除文件夹层次结构,但仅在我卸载软件时。目前,当我重新安装时,它会删除所有文件夹,删除所有不希望的程序创建内容。这可能是因为我在重新安装之前已将软件设置为已卸载
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
是否可以对以下元素施加条件?我应该将它包装在它自己的组件中,然后在里面添加一个条件吗?到目前为止,我还没能让它上班。
<util:RemoveFolderEx On="uninstall" Property="MAINDIR" ></util:RemoveFolderEx>
从另一个问题我知道条件必须是
((NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL"))
但是,如果可能的话,我不是100%关于如何将它应用于removefolder元素。
我想我可以在自定义操作上设置文件夹的路径为空,该操作受条件限制,但这看起来很糟糕。
干杯。 尼尔
<DirectoryRef Id="DATADIR">
<Component Id="C.RemoveDataFolder" Guid="myguid" KeyPath="yes">
<util:RemoveFolderEx On="uninstall" Property="DATADIR" ></util:RemoveFolderEx>
<Condition>(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Condition>
</Component>
</DirectoryRef>
有没有人知道上述声明是否正常或者这是否会起作用?我可以将这种条件应用于组件吗?
答案 0 :(得分:4)
RemoveFolderEx绑定到一个组件,因此如果它被删除并且RemoveFolderEx / @ On =&#34;卸载&#34;然后RemoveFolderEx会做它的事情。没有人支持添加其他条件,但这似乎是合理的;请提交feature request,以便在待办事项列表中显示。
答案 1 :(得分:0)
组件条件控制是否安装组件。安装时此条件为false,因此未安装组件。当然在卸载时它不会被删除,因此删除操作不起作用。我会使用自定义操作来有条件地设置目标属性。