我对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>
谁能指出我做错了什么或我需要做些什么? 谢谢
答案 0 :(得分:0)
多个实例? :在“添加/删除程序”中,您的应用程序是否有多个条目?如果是这样,请尝试将它们全部卸载,然后查看快捷方式项目和文件是否消失。请记住,这些可能包括您不再记得的“实验实例”。尝试使用干净的虚拟机,以查看在全新安装后卸载是否可以正常进行清理。
Updater.exe :我看到您那里有一个“ Updater.exe
”。您是否正在使用该EXE文件从服务器下载应用程序文件以启动该过程?如果是这样,则不打算将其用于MSI和WiX。从共享下载文件会忽略重要的部署功能,例如 transaction control
, rollback
, file registration
, file inventory
等...如果要下载这样的文件,则最好使用非MSI技术部署快捷方式。