当我安装.msi文件时,我在开始菜单和桌面上生成快捷方式,但是当我卸载桌面快捷方式时,会删除但是开始菜单。我的代码是吼叫。请帮我解决我的问题。我花了差不多一天的时间。
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuSubfolder" Name="Kiosk">
<Component Id="ApplicationShortcuts" Guid="12345678-1234-1234-1234-333333333333">
<Shortcut Id="ApplicationShortcut1" Name="Kiosk" Description="Solusoft Product" Target="[INSTALLDIR]AMP\1.0.0.0\mpkiosk.exe" WorkingDirectory="INSTALLDIR"/>
<RegistryValue Root="HKCU" Key="Software\Kiosk" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
<RemoveFolder Id="ApplicationShortcut1" On="uninstall"/>
</Component>
</Directory>
</Directory>
答案 0 :(得分:6)
在我的情况下,在组件上,我有GUID =“*”并且没有删除shorcuts。
我使用了一个硬编码的GUID,如:Guid =“cc509cb7-c1a1-46cf-8c62-7cbb0017783c”,并删除了快捷方式。
问候。
答案 1 :(得分:4)
您的代码中有错误。
而不是:
<RemoveFolder Id="ApplicationShortcut1" On="uninstall"/>
使用:
<RemoveFolder Id="ProgramMenuSubfolder" On="uninstall"/>
这应该这样做。
答案 2 :(得分:1)
在我的情况下,我尝试了不同的选项,并且有一个注释掉的部分具有相同的GUID。将其更改为不同的GUID,即使另一个被注释掉,也可以工作。
答案 3 :(得分:0)
下面是我在项目中使用的代码。希望,这会有所帮助。我认为您可以使用'RemoveFile'而不是'RemoveFolder',并且不要忘记在其中添加'Name'属性。
<RegistryKey Action="createAndRemoveOnUninstall" Root="HKCU"
Key="Software\$(var.ManufacturerEng)\$(var.ProductName)\$(var.ApplicationName)">
<RegistryValue Name="ShortcutService"
Type="integer" Value="1"
KeyPath="yes">
</RegistryValue>
</RegistryKey>
<Shortcut Advertise="no" Directory="ApplicationProgramsFolder"
Name="ServiceCC"
Target="[INSTALLLOCATION]Service.exe"
Id="SHORTCUT_serv"
WorkingDirectory="INSTALLLOCATION">
</Shortcut>
<RemoveFile Id="remove_serviceshort" Name="ServiceCC" On="uninstall"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
</Component>
答案 4 :(得分:0)
就我而言,这是复制粘贴错误。我为该组件使用了与另一个产品相同的 Guid,我在该文件夹中为其创建了快捷方式。因此在卸载时删除图标失败