为什么卸载后不会删除“开始”菜单快捷方式?

时间:2012-05-15 06:25:18

标签: wix windows-installer

当我安装.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>

5 个答案:

答案 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,我在该文件夹中为其创建了快捷方式。因此在卸载时删除图标失败