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

时间:2018-09-05 18:33:24

标签: c# wix windows-installer installer

我对WiX和安装程序还很陌生,所以请允许我回答这个问题。

我创建了一个WiX安装项目来安装我的C#应用​​程序,并且能够通过Programs Files文件夹中的文件夹以及桌面和Applications程序文件夹的快捷方式成功安装该项目。

我的问题是,当我使用生成的安装项目的msi或添加/删除程序中的卸载选项卸载程序时,快捷方式仍然保留,而应用程序仍位于Programs Files文件夹中。这是我的代码:

<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="Software\Microsoft\Update 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="Software\Microsoft\Update Tool" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
  </Component>
</DirectoryRef>

谁能指出我做错了什么或我需要做些什么? 谢谢

1 个答案:

答案 0 :(得分:0)

多个实例? :在“添加/删除程序”中,您的应用程序是否有多个条目?如果是这样,请尝试将它们全部卸载,然后查看快捷方式项目和文件是否消失。请记住,这些可能包括您不再记得的“实验实例”。尝试使用干净的虚拟机,以查看在全新安装后卸载是否可以正常进行清理。

Updater.exe :我看到您那里有一个“ Updater.exe ”。您是否正在使用该EXE文件从服务器下载应用程序文件以启动该过程?如果是这样,则不打算将其用于MSI和WiX。从共享下载文件会忽略重要的部署功能,例如 transaction control rollback file registration file inventory 等...如果要下载这样的文件,则最好使用非MSI技术部署快捷方式。