我的应用程序有一个设置文件,我需要在用户卸载应用程序时保留该文件。我可以使用组件执行此操作,还是需要使用自定义操作?
这是我到目前为止(不工作):
<Directory Id="INSTALLLOCATION" Name="_MyApp">
<Component>
<File KeyPath="yes" Source="$(var.Source)\settings.ini" />
</Component>
<Component Id="Backup" Guid="SOME-GUID">
<Condition>REMOVE=ALL</Condition>
<CopyFile Id="settings.ini" Delete="no" SourceProperty="INSTALLLOCATION" DestinationProperty="INSTALLLOCATION" SourceName="settings.ini" DestinationName="settings.ini.bak" />
</Component>
</Directory>
如果重要,这些组件属于:
<Feature Id="Default" Level="1">
<ComponentRef Id="settings.ini" />
<ComponentRef Id="Backup" />
</Feature>
我怀疑这不起作用,因为动作MoveFiles在RemoveFiles之后运行,然后没有什么可以移动,所以我从安装程序中删除了settings.ini并在安装后手动复制它。我在想这样的方式,在RemoveFiles之后ini文件仍然存在,它将被重命名。嗯,ini文件确实存在,但它没有重命名。知道为什么吗?
答案 0 :(得分:1)
Windows Installer没有用于备份和还原文件的内置机制。通常,解决方案是使用复制文件的自定义操作。
我从安装程序中删除了settings.ini 并在之后手动复制 安装。我这样想 ini文件仍然存在 RemoveFiles,它将被备份。 嗯,ini文件确实存在但是 它没有得到备份。
尝试创建卸载日志,看看执行MoveFiles时会发生什么。作为旁注,我不知道如何在安装后手动复制文件比备份自定义操作更好。