WIX安装项目未完全卸载应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WIX安装项目未完全卸载应用程序相关的知识,希望对你有一定的参考价值。

我是WiX和安装人员的新手,所以请耐心等待这个问题。

我已经创建了一个WiX安装项目来安装我的C#应用​​程序,我已经能够使用Files Files文件夹中的文件夹以及桌面和Applications Program文件夹的快捷方式成功安装它。

我的问题是当我使用生成安装项目的msi或添加/删除程序中的卸载选项卸载程序时,快捷方式仍然存在且应用程序仍在“程序文件”文件夹中。这是我的代码:

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="Update Tool" />
  </Directory>
  <Directory Id="ProgramMenuFolder">
    <Directory Id="ApplicationProgramsFolder" Name="Update Tool" />
  </Directory>
  <Directory Id="DesktopFolder" Name="Desktop"/>
</Directory>

  <Fragment>
<DirectoryRef Id="ApplicationProgramsFolder">
  <Component Id="ApplicationShortcut" Guid="*">
    <Shortcut Id="ApplicationStartMenuShortcut"
              Name="Update Tool"
              Description="Update Tool"
              Target="[INSTALLFOLDER]Updater.exe"
              WorkingDirectory="APPLICATIONROOTDIRECTORY"
              Icon="icon.ico"/>
    <RemoveFile Id="remove_menushortcut" Name="Update Tool" On="uninstall"/>
    <RemoveFolder Id="RemoveApplicationProgramsFolder" Directory="ApplicationProgramsFolder" On="uninstall"/>
    <RegistryValue Root="HKCU" Key="SoftwareMicrosoftUpdate Tool" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
  </Component>
</DirectoryRef>
<DirectoryRef Id="DesktopFolder">
  <Component Id="ApplicationShortcutDesktop" Guid="*">
    <Shortcut Id="ApplicationDesktopShortcut"
              Name="Update Tool"
              Description="Update Tool"
              Target="[INSTALLFOLDER]Updater.exe"
              WorkingDirectory="APPLICATIONROOTDIRECTORY"
              Icon="icon.ico"/>
    <RemoveFile Id="remove_applicationshortcut" Name="Update Tool" On="uninstall"/>
    <RemoveFolder Id="RemoveDesktopFolder" Directory="DesktopFolder" On="uninstall"/>
    <RegistryValue Root="HKCU" Key="SoftwareMicrosoftUpdate Tool" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
  </Component>
</DirectoryRef>

任何人都可以指出我做错了什么或者我需要做什么?谢谢

答案

多个实例?:在添加/删除程序中,您的应用程序是否有多个条目?如果是这样,请尝试卸载所有这些,并查看短节项目和文件是否消失。请记住,这些可能包括您不再记得的“实验实例”。尝试使用干净的虚拟机,看看卸载是否在全新安装后正确清理。

Updater.exe:我看到你有一个“Updater.exe”。您是否使用该EXE文件从服务器下载应用程序文件以启动该过程?如果是这样,那么这不是MSI和WiX的用途。从共享下载文件会忽略重要的部署功能,例如transaction controlrollbackfile registrationfile inventory等......如果要下载这样的文件,您可以使用非MSI技术部署快捷方式。

以上是关于WIX安装项目未完全卸载应用程序的主要内容,如果未能解决你的问题,请参考以下文章

卸载升级时如何摆脱wix中未使用的dll

如何使用 WiX 从源代码重建完全相同的 msi 文件?

未设置 WiX 卸载 UI 属性

参数未传递给 WiX 中的延迟自定义操作

如何在 WiX 中执行仅在安装或卸载时执行的自定义操作?

Wix 安装程序 - 未复制所有源和内容