2017-08-15 4 views
2

J'ai ce script Wix XML pour installer mon service et une icône de raccourci sur le bureau. L'installation fonctionne parfaitement, le programme de désinstallation fonctionne également mais il laisse l'icône de raccourci sur le bureau. Je ne pouvais pas comprendre ce qui ne va pas, je le paramètre On="uninstall" tel que spécifié dans la documentation Wix,L'icône du bureau ne sera pas supprimée après la désinstallation - Wix

ici le XML:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
<Product Id="*" Name="Administration Service" Language="1033" Version="1.3.0.0" Manufacturer="company" UpgradeCode="PUT-GUID-HERE> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64"/> 

    <Icon Id="shortcut_s.url" SourceFile="./../ReviewerBootstrapper/reviewer.ico"/> 
    <Property Id="ARPPRODUCTION" Value="shortcut_s.url"/> 
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <Media Id="1" Cabinet="cab1.cab" EmbedCab="yes" /> 

    <Feature Id="ProductFeature" Title="AdministrationServiceInstallation" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
      <ComponentGroupRef Id="AdministrationServiceComponents" /> 
      <ComponentRef Id="ApplicationShortcut" /> 
      <ComponentRef Id="ApplicationShortcutDesktop"/> 
    </Feature> 

    </Product> 


    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFiles64Folder"> 
     <Directory Id="Company" Name="Eurotherm"> 
      <Directory Id="App" Name="Reviewer"> 
      <Directory Id="INSTALLFOLDER" Name="AdministrationService" >  
      </Directory> 
      </Directory> 
     </Directory> 
     </Directory> 
      <Directory Id="ProgramMenuFolder"> 
       <Directory Id="ApplicationProgramsFolder" Name="Eurotherm Reviewer" /> 
      </Directory> 
      <Directory Id="DesktopFolder" Name="Desktop" /> 
    </Directory> 
</Fragment> 

    <Fragment> 
    <DirectoryRef Id="ApplicationProgramsFolder"> 
     <Component Id="ApplicationShortcut" Guid="*" Win64="yes"> 
     <Shortcut Id="ApplicationStartMenuShortcut" 
        Name="Reviewer Services" 
        Target="[INSTALLFOLDER]shortcut_s.url" 
        WorkingDirectory="APPLICATIONROOTDIRECTORY" 
        Icon="shortcut_s.url" /> 
     <RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall" /> 
     <RegistryValue Root="HKCU" Key="Software\Microsoft\Reviewer" Name="installed" Type="integer" Value="1" 
         KeyPath="yes" /> 
     </Component> 
    </DirectoryRef> 
    <DirectoryRef Id="DesktopFolder"> 
     <Component Id="ApplicationShortcutDesktop" Guid="*" Win64="yes"> 
     <Shortcut Id="DesktopShortcut" 
        Name="Services Reviewer" 
        Target="[INSTALLFOLDER]shortcut_s.url" 
        WorkingDirectory="APPLICATIONROOTDIRECTORY" 
        Icon="shortcut_s.url" /> 
     <RemoveFolder Id="RemoveDesktopShortCut" Directory="DesktopFolder" On="uninstall" /> 
     <RegistryValue Root="HKCU" Key="Software\Microsoft\Reviewer" Name="installed" Type="integer" Value="1" 
         KeyPath="yes" /> 
     </Component> 
    </DirectoryRef> 
    </Fragment> 






<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 

      <Component Id="WebShortcut" Guid="" Win64="yes"> 
       <File Id="web_shortcut_id" Name="shortcut_s.url" Source="shortcut_s.url"/> 
      </Component>  

     <Component Id="removeAll" Guid="*" Win64="yes"> 
     <CreateFolder /> 
     <util:RemoveFolderEx Id="RemoveAdministrationServicesFolder" On="uninstall" Property="INSTALLFOLDER" /> 
    </Component> 
      <Component Id="ReviewerServices.web.exe" Guid="*" Win64="yes"> 
      <File Id="ReviewerServices.web.exe" KeyPath="yes" Source="$(var.publishDir)\ReviewerServices.web.exe" /> 
        <ServiceInstall Id="AdministrationServiceInstaller" 
              Type="ownProcess" 
              Vital="yes" 
              Name="ReviewerServices.web" 
              DisplayName="Reviewer Administration Service" 
              Description="ReviewerAdministrationService" 
              Start="auto" 
              Account="LocalSystem" 
              ErrorControl="ignore" 
              Interactive="no" /> 
        <ServiceControl Id="AdministrationStartService" 
              Start="install" 
              Stop="both" 
              Remove="uninstall" 
              Name="ReviewerServices.web" 
              Wait="yes" /> 
      </Component> 
    </ComponentGroup> 
</Fragment> 
</Wix> 

Répondre

2

Au lieu d'utiliser la balise DirectoryRef pour indiquer la destination, vous le spécifiez dans la valeur Directory de la balise Shortcut, comme indiqué ci-dessous. Notez que j'ai supprimé la balise DirectoryRef environnante. Le dossier RemoveFolder que vous avez utilisé indiquerait que le dossier Desktop doit être supprimé lorsqu'il est désinstallé, ce qui n'est pas possible.