如何将文件复制到CommonAppDataFolder?

Jad*_*ias 5 wix programdata windows-7

在WiX中,我有

<Directory Id="CommonAppDataFolder">
    <Directory Id="CommonAppDataManufacturerFolder" Name="$(var.MANUFACTURER)">
        <Directory Id="AppDataFolder" Name="$(var.PRODUCTNAME)">
            <Directory Id="DatasFolder" Name="Datas"/>
        </Directory>
    </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

<ComponentGroup Id="DatasComponents" Directory="DatasFolder">
    <Component Id="Database.sdf" Guid="4c33c78e-7113-4a8c-b9fd-6ba4f6490935">
        <File Id="Database.sdf" Source="Database.sdf" />
        <RemoveFolder Id='DatasFolder' On='uninstall' />
        <RegistryValue Root='HKCU'
                        Key='Software\[Manufacturer]\[ProductName]'
                        Type='string'
                        Value=''
                        KeyPath='yes' />
    </Component>
</ComponentGroup>
Run Code Online (Sandbox Code Playgroud)

但是文件被复制到C:\ Users \ username \ AppData \ Roaming \ Datas \而不是%ProgramData%\ Manufacturer \ ProductName \ Datas \

Jad*_*ias 3

问题是,这AppDataFolder是一个保留关键字,它会将您带到漫游数据文件夹,我只需将此 id 更改为非保留关键字,我的代码就可以工作

<Directory Id="CommonAppDataFolder">
    <Directory Id="CommonAppDataManufacturerFolder" Name="$(var.MANUFACTURER)">
        <Directory Id="MyAppDataFolder" Name="$(var.PRODUCTNAME)">
            <Directory Id="DatasFolder" Name="Datas"/>
        </Directory>
    </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)