Pergunta

Eu queria que o WiX removesse a pasta AppData ao desinstalar, então olhei RemoveFolderEx e segui alguns posts/guias sobre como fazê-lo funcionar.Pelo que sei, minha implementação deveria funcionar, mas não funciona.Estou usando o seguinte:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="AppDataFolder">
        <Directory Id="PRIVATEDATAFOLDER" Name="MyApp"/>
    </Directory>
</Directory>
<Property Id="PRIVATEDATAFOLDER">
    <RegistrySearch Root="HKCU" Key="Software\AppCo\MyApp" Type="raw" 
                    Id="APPLICATIONFOLDER_REGSEARCH" Name="PrivateDir" />
</Property>
<DirectoryRef Id='PRIVATEDATAFOLDER'>
    <Component Id="PrivateData" Guid="myGuid">
        <CreateFolder Directory="PRIVATEDATAFOLDER"/>
        <util:RemoveFolderEx Property="PRIVATEDATAFOLDER" On="uninstall"/>
        <RemoveFolder Id="PRIVATEDATAFOLDER" On="uninstall"/>
        <RegistryValue Root="HKCU" Key="Software\AppCo\MyApp" Name="PrivateDir" 
                       Type="string" Value="[PRIVATEDATAFOLDER]" KeyPath="yes"/>
    </Component>
</DirectoryRef>

Há algo que estou fazendo errado aqui?

EDITAR:Depois de verificar um log detalhado, recebo o erro:

WixRemoveFoldersEx: Erro 0x80070057:Propriedade de pasta ausente:PASTA DE DADOS PRIVADA

Foi útil?

Solução

Nos seus registros, acima do 'Erro 0x80070057:Propriedade de pasta ausente:PRIVATEDATAFOLDER' existe uma linha de log como 'Ignorando propriedade não permitida PRIVATEDATAFOLDER' e, em caso afirmativo, você tentou adicionar 'seguro="sim"' para sua propriedade PRIVATEDATAFOLDER?

Outras dicas

Use um ID para a propriedade diferente do diretório.Eles estão em conflito, o que faz com que a propriedade fique vazia quando RemovedFoldersEx tenta processá-la.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top