在WIX中卸载后无法删除桌面图标

时间:2018-07-27 05:39:15

标签: wix windows-installer

我正在为我的应用程序使用WIX安装程序,一切正常,但是当我卸载该应用程序时,桌面图标和开始菜单图标仍然存在。 我的xml有什么问题。遵循Wix文档给出的步骤。 帮助。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="applicationName" Language="1033" Version="1.0.0.0" Manufacturer="manufacturerName" UpgradeCode="PUT-GUID-HERE">
    <Package Id="*" InstallerVersion="201" Compressed="yes" InstallScope="perMachine" Comments="Windows Installer Package" ReadOnly="yes" InstallPrivileges="elevated" />       
    <Feature Id="ProductFeature" Title="applicationName" Level="1">         
        <ComponentRef Id="Permission.INSTALLFOLDER" />
        <ComponentRef Id="ApplicationDeskShortcutComp" />
        <ComponentGroupRef Id="HeatGenerated" />
    </Feature>      
    <Media Id="1" Cabinet="cab1.cab" EmbedCab="yes" />
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFiles64Folder">
            <Directory Id="CompanyNameFolder" Name="CompanyName">
                <Directory Id="INSTALLFOLDER" Name="applicationName">
                    <Component Id="Permission.INSTALLFOLDER" Guid="*">
                        <CreateFolder>
                            <Permission User="Everyone" GenericAll="yes" />
                        </CreateFolder>
                    </Component>                        
                </Directory>
            </Directory>
        </Directory>
        <Directory Id="DesktopFolder" Name="applicationName" />         
    </Directory>

    </DirectoryRef>-->
    <!--Add the shortcut to installer package For DeskTop-->
    <DirectoryRef Id="DesktopFolder">
        <Component Id="ApplicationDeskShortcutComp" Guid="*" Win64="yes" >
            <Shortcut Id="ApplicationDeskShortcut" Name="applicationName" Description="applicationName" Target="[INSTALLFOLDER]exeName.exe" WorkingDirectory="DesktopFolder" Icon="IconName.exe" >
            </Shortcut> 
            <RemoveFolder Id="DesktopFolder" On="uninstall" />              
            <RegistryValue Root="HKCU" Key="Software\Manufacturer\ProductName" Name="installed" Type="integer" Value="1" KeyPath="yes" />
        </Component>
    </DirectoryRef>

    <Property Id="MYWIXUI_MONDO" Value="INSTALLFOLDER" />
    <UIRef Id="MyWixUI_Mondo" />
    <Icon Id="IconName.exe" SourceFile=".\Icons\MainLogo.ico" />
    <Property Id="ARPPRODUCTICON" Value="IconName.exe" />
   </Wix>

1 个答案:

答案 0 :(得分:0)

现在没有时间进行测试,但是请您先尝试更改一下:

<Directory Id="DesktopFolder" Name="applicationName" />

对此:

<Directory Id="DesktopFolder" />

DesktopFolder 是内置的Windows Installer文件夹,应解析为用户的桌面文件夹所有用户的通用桌面文件夹< / strong>,具体取决于ALLUSERS的设置(按计算机或按用户安装)。

在安装过程中, MSI目录解析(成本核算)将为正在运行的系统的DesktopFolder分配正确的值(基于ALLUSERS设置)。我认为一旦目录解析运行完毕,您自己在WiX源中分配给DesktopFolder的任何内容都会被清除掉,因此,上述WiX标记更改建议应该起作用没有直接的逻辑原因,但是我认为应该对此进行测试。如果可用,请在干净的虚拟机上进行测试。