1

目前,我们的用户数据层次结构如下所示:

LocalAppDataFolder/公司/产品

这是有道理的,因为用户可能安装了多个产品。但是,WiX 不会让我只删除 Product 文件夹。

<Directory Id="LocalAppDataFolder">
    <Directory Id="ManufacturerDir" Name="Company">
        <Directory Id="AppDataDir" Name="Product">
            <Component Id="AppData" Guid="some_guid">
                <RemoveFolder Id="AppDataDir" On="uninstall" />
                <RegistryValue Root="HKCU" Key="Software\Company\Product" Type="string" Value="" />
            </Component>
        </Directory>
    </Directory>
</Directory>

上面的代码片段导致错误“LGHT0204 : ICE64: 公司目录在用户配置文件中,但未列在 RemoveFile 表中。” 显然,我不想擦除其他产品的数据。我发现的几个示例只有一个目录深度,即它们不包括中间目录,在本例中为 Company。

我觉得我在这里误解了一些东西。什么?非常感谢。

4

1 回答 1

4

添加<RemoveFolder Id="RemoveManufacturerDir" Directory="ManufacturerDir" On="Uninstall"/>应该可以消除该错误。只有当目录为空时,该文件夹才会被删除。如果那里有其他文件,它不会被删除。

于 2012-06-05T18:53:29.207 回答