2017-09-22 2 views
1

J'ai wix installateur avec bootstraper pour certaines applications ce qui crée des fichiers supplémentaires dans le dossier de l'application au cours de son travail et je dois supprimer ces fichiers lors de la désinstallation. Selon https://www.hass.de/content/wix-how-use-removefolderex-your-xml-scripts et d'autres mêmes exemples que j'ai parties suivantes de code:WIX util: RemoveFolderEx ne fonctionne pas

  1. Define propriété:

    <Property Id="APPLICATIONFOLDER"> 
        <RegistrySearch Key="SOFTWARE\ProductName" 
            Root="HKLM" 
            Type="raw" 
            Id="APPLICATIONFOLDER_REGSEARCH" 
            Name="Path" /> 
    </Property> 
    
  2. composant DEFINE:

    <Directory Id="APPLICATIONFOLDER" Name="ProductName"> 
        <Component Id="RemoveAll" Guid="some-guid"> 
        <RegistryValue Root="HKLM" 
            Key="Software\ProductName" 
            Type="string" 
            Name="Path" 
            Value="[APPLICATIONFOLDER]" 
            KeyPath="yes"/> 
        <util:RemoveFolderEx On="uninstall" 
             Property="APPLICATIONFOLDER" /> 
        </Component> 
    </Directory> 
    
  3. Ajouter un composant à fonctionnalité:

    <Feature Id="ProductFeature" Title="ProductName" Level="1"> 
        ... 
        <ComponentRef Id="RemoveAll" /> 
        ... 
    </Feature> 
    

Ensuite, lorsque je tente de désinstaller cette application j'ai lignes suivantes dans les journaux de Wix:

... 
MSI (s) (B4:64) [13:05:58:798]: PROPERTY CHANGE: Adding APPLICATIONFOLDER property. Its value is 'C:\Program Files(x86)\ProductName\' 
... 
Action start 13:05:58: WixRemoveFoldersEx. 
MSI (s) (B4:48) [13:05:58:914]: PROPERTY CHANGE: Adding _APPLICATIONFOLDER_0 property. Its value is 'C:\Program Files (x86)\ProductName\'. 
WixRemoveFoldersEx: Recursing path: C:\Program Files (x86)\ProductName\ for row: wrfE932DA8DA501DD981493D5D9F4EFDD75. 
MSI (s) (B4:64) [13:05:58:918]: Doing action: CostInitialize 
MSI (s) (B4:64) [13:05:58:918]: Note: 1: 2205 2: 3: ActionText 
Action ended 13:05:58: WixRemoveFoldersEx. Return value 1. 
... 

Mais heppens rien et tous les fichiers supplémentaires sont présents dans le dossier de l'application, et par conséquent le dossier est également présent. Je n'ai aucune idée pourquoi et je ne sais pas ce qui doit changer pour résoudre ce problème.

Quelqu'un pourrait m'aider?

Répondre

0

Vous devez supprimer tous les fichiers créés par l'application avant de pouvoir supprimer le dossier. Essayez quelque chose comme ceci:

<Component Id="RemoveOrphanFiles" Guid=InsertGUID KeyPath="yes"> 
    <RemoveFile Id="RemoveFiles" Name="*.*" On="uninstall" /> 
</Component> 

et ajouter une condition pour qu'il ne fonctionne que sur désinstaller ... Hope this helps!