【发布时间】:2016-05-16 13:54:14
【问题描述】:
我正在使用 WiX Toolset v3.10.2 构建一个 MSI 设置文件。我正在使用 InstallScope='perMachine',所以程序安装在 Program Files 文件夹中。
但是,我需要将一个(设置)文件安装到当前用户的 Application Data Roaming 文件夹中。
<Directory Id="AppDataFolder">
<Directory Id="ManufacturerAppDataFolder" Name="Manufacturer">
<Directory Id="ProductAppDataFolder" Name="ProductName">
<Component Id="AppDataConfig" Guid="643DB270-8D85-467B-A6BA-9A54924655E0" Feature="MainApplication">
<RemoveFolder Id='RemoveProductAppDataFolder' Directory='ProductAppDataFolder' On='uninstall' />
<RemoveFolder Id='RemoveManufacturerAppDataFolder' Directory='ManufacturerAppDataFolder' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Name="UserConfigLocation" Value='[ProductAppDataFolder]' KeyPath='yes' />
<File Source="Files\user.settings" />
</Component>
</Directory>
</Directory>
</Directory>
我在运行 light.exe 时收到此警告:
warning LGHT1076 : ICE91: The file 'user.settings' will be installed
to the per user directory 'ProductAppDataFolder' that doesn't vary based
on ALLUSERS value. This file won't be copied to each user's profile even
if a per machine installation is desired.
我正在 Windows 10 PC 的管理员用户(“FirstUser”)上安装 MSI,并且设置文件已正确安装在
c:\Users\FirstUser\AppData\Roaming\Manufacturer\ProductName\user.settings
如果我登录到另一个用户帐户(“SecondUser”),一个新的设置文件会出现在
c:\Users\SecondUser\AppData\Roaming\Manufacturer\ProductName\user.settings
但是,在我以管理员帐户(“FirstUser”)登录后运行卸载程序后,设置文件仅从 FirstUser 的 AppData 文件夹中删除。 SecondUser 的 AppData 文件夹中的设置文件没有被删除,它留在磁盘上。
在 Application Data 文件夹中安装文件的正确方法是什么,以便为每个用户创建它,并在卸载时为每个用户删除?
【问题讨论】:
-
“在 Application Data 文件夹中安装一个文件,以便为每个用户创建它”:让应用程序创建它。它没有安装。它不会被卸载。请参阅博客@PhilDW referenced。
标签: wix windows-installer