Windows installer 标准用户安装时,AppDataFolder映射到错误的文件夹

Windows installer 标准用户安装时,AppDataFolder映射到错误的文件夹,windows-installer,installshield,Windows Installer,Installshield,作为Installshield项目的一部分,我需要在用户的漫游应用程序数据文件夹中放置一些文件(C:\Users\\AppData\Roaming\MyApp\MyFile)。为此,我创建了一个组件,并将其目标设置为[AppDataFolder]MyApp 当我以管理员的身份运行时,这可以正常工作;当我以标准用户的身份运行安装程序时(在安装过程中使用管理员的帐户/密码提升权限),MyFile被复制到管理员的漫游文件夹(C:\Users\\AppData\roaming\MyApp\MyFile)

作为Installshield项目的一部分,我需要在用户的漫游应用程序数据文件夹中放置一些文件(
C:\Users\\AppData\Roaming\MyApp\MyFile
)。为此,我创建了一个组件,并将其目标设置为
[AppDataFolder]MyApp

当我以管理员的身份运行时,这可以正常工作;当我以标准用户的身份运行安装程序时(在安装过程中使用管理员的帐户/密码提升权限),
MyFile
被复制到管理员的漫游文件夹(
C:\Users\\AppData\roaming\MyApp\MyFile
),而不是用户的


有办法解决这个问题吗?

将文件安装到用户配置文件是一项有问题的工作。考虑这里解释的其他方法:

链接的答案有些过头了(它试图总结用户配置文件部署可能导致的所有问题),但基本上,您可以让您的应用程序在应用程序启动时将相关文件从安装在主应用程序安装目录(在%ProgramFiles%下)某处的只读模板副本复制到每个用户的正确用户配置文件文件夹

使用应用程序将这些文件复制到用户配置文件将消除许多可能导致的部署问题。有关详细信息,请阅读上面的链接答案


至于您的情况在技术上会发生什么,我猜您已经为每个用户组件设置了一个磁盘密钥路径。如果要避免指向管理员文件夹的错误链接,您需要为这些组件设置HKCU注册表路径

更新:检查此解释是否更好:。通过为托管组件设置HKCU路径,您将不会得到以红色字母显示的硬编码名称(错误)。如果问题仍然不清楚,请检查链接线程中下面的其他答案

如果您选择采用HKCU关键路径方法,请阅读上方链接答案中的
3:MSI自我修复