首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WiX installer在卸载时不删除文件

WiX installer在卸载时不删除文件
EN

Stack Overflow用户
提问于 2013-11-08 07:41:02
回答 2查看 12.6K关注 0票数 10

我告诉wix MSI文件在卸载时删除文件,但它根本没有注册它。

对于这个包,我这样调用MSI文件:

代码语言:javascript
复制
<MsiPackage SourceFile="..\..\..\..\Kiosk\MyProject\bin\Release\MyProject.msi"        Name="MyProject.msi" DisplayInternalUI="yes" Permanent="no" />

在MSI文件中,我称之为:

代码语言:javascript
复制
<ComponentGroup Id="Purge" Directory="INSTALLFOLDER">
  <Component Id="PurgeFiles" Guid="">
    <RemoveFile Id="RemoveBaseFolder" Name="*" On="uninstall" Directory="INSTALLFOLDER" />
    <RemoveFile Id="RemoveLanguage_af" Directory="Language_af" Name="*.*" On="uninstall"/>
    <RemoveFile Id="RemoveLanguage_de" Name="*.*" On="uninstall" Directory="Language_de"/>
    <RemoveFile Id="RemoveLanguage_es" Name="*.*" On="uninstall" Directory="Language_es"/>
    <RemoveFile Id="RemoveLanguage_fr" Name="*.*" On="uninstall" Directory="Language_fr"/>
    <RemoveFile Id="RemoveLanguage_it" Name="*.*" On="uninstall" Directory="Language_it"/>
    <RemoveFile Id="RemoveLanguage_ja" Name="*.*" On="uninstall" Directory="Language_ja"/>
    <RemoveFile Id="RemoveLanguage_ko" Name="*.*" On="uninstall" Directory="Language_ko"/>
    <RemoveFile Id="RemoveLanguage_ru" Name="*.*" On="uninstall" Directory="Language_ru"/>
    <RemoveFile Id="Removezh_CN" Name="*.*" On="uninstall" Directory="zh_CN"/>
    <RemoveFile Id="RemoveDatabase" Name="*.*" On="uninstall" Directory="Database"/>
    <RemoveFile Id="RemoveFileData" Name="*.*" On="uninstall" Directory="FileData"/>
    <RemoveFile Id="RemoveRecordingTempData" Name="*.*" On="uninstall" Directory="RecordingTempData"/>
    <RemoveFile Id="RemoveSignatureData" Name="*.*" On="uninstall" Directory="SignatureData"/>
    <RemoveFile Id="RemoveCacheUpdater" Name="*.*" On="uninstall" Directory="CacheUpdater"/>
    <RemoveFile Id="RemoveRecordingUploader" Name="*.*" On="uninstall" Directory="RecordingUploader"/>
  </Component>
</ComponentGroup>

然后,我使用以下参数引用组件组:

代码语言:javascript
复制
<Feature Id="ProductFeature" Title="CacheUpdaterInstaller" Level="1">
<ComponentGroupRef Id="Purge"/>
</Feature>

为什么没有删除这些文件?我已经尝试了从刻录exe文件和MSI文件本身。该程序安装良好,但删除似乎根本不起作用。

EN

回答 2

Stack Overflow用户

发布于 2013-11-09 02:14:35

所以,我发现了我的问题所在。

我没有正确地添加guids。文件和文件夹现在可以正确删除。

票数 6
EN

Stack Overflow用户

发布于 2013-11-08 20:26:22

查看此帖子;Removing files when uninstalling WiX

首先,我希望您不要删除由MSI安装的文件,这将有悖于MSI的目的。它应该已经这样做了。

其次,您可以尝试向组件添加空的CreateFolder元素(如果不包括KeyPath元素,或者不包括Components KeyPath="Yes“,则可能出现组件未注册的情况)。

确保使用RemoveFolder元素。由于您也可以从链接中读取,因此不支持递归,因此您需要手动删除所有内容,并确保没有子文件夹。

Ps这很累人,你可以使用CustomAction来执行带有rmdir的System64\cmd.exe,并在其中包含递归标志,然后在RemoveFiles之后调度它,并且只在UNISTALL上运行它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19848971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档