我正在使用“将 Win32 应用程序(Zoom Player)转换为 UWP AppX 模型”桌面桥” 转换工具。
在 Windows VISTA 中引入的文件夹模型下,不需要创建/写入访问权限的应用程序文件安装在“程序文件“需要创建/写入访问权限的文件夹和文件安装在本地应用程序数据文件夹 (”C:\Users\bLight\AppData\Local” 当呼叫“时SH获取已知文件夹路径“ WinAPI 函数与FOLDERID_LocalAppData范围)。
我的问题是由创建的 AppX 文件桌面桥将安装程序要安装的文件安装到“FOLDERID_LocalAppData”(C:\Users\bLight\AppData\Local\Zoom Player) here:
C:\Program Files\WindowsApps\ZoomPlayer_12.5.0.0_x86__63ghcm0aqanjp\VFS\Users\ContainerAdministrator\AppData\Local\Zoom Player
运行已安装的应用程序后,任何后续的读取或写入尝试都会重定向到:
c:\users\bLight\appdata\local\packages\zoomplayer_63ghcm0aqanjp\LocalCache\Local\Zoom Player
这意味着无法访问已安装的文件。
安装程序和 Win32 应用程序都使用具有相同参数的“SHGetKnownFolderPath”来检索本地 AppData 文件夹。
我有什么想法可以解决这个问题吗?
我有什么想法可以解决这个问题吗?
转换后,AppData 将重定向到本地应用数据存储,这是每个 UWP 应用的私有存储。
请注意这个场景:您的应用程序写入应用程序的安装目录。例如,您的应用程序写入一个日志文件,该文件与您的 exe 放在同一目录中。不支持此功能,因此您需要找到另一个位置,例如本地应用程序数据存储。
See 准备桌面应用以转换为 UWP部分在here https://msdn.microsoft.com/windows/uwp/porting/desktop-to-uwp-root
----------------更新1----------------
Rob https://stackoverflow.com/users/4068779/rob-caplan-msft为您提供了正确的方向MSDN问题 https://social.msdn.microsoft.com/Forums/windowsapps/en-US/284bfaec-392a-4775-864f-225543ca9b86
Quote:
AppX安装程序是否无法自动将某些文件放入本地应用程序数据文件夹中?
是的。建议的模式是将模板文件包含在安装包中,然后在首次使用时将其复制到本地应用程序数据文件夹。
安装应用程序包后,它只是被复制到系统中。它不运行任何初始化代码。它不知道哪些用户将运行该应用程序,也无权访问他们的用户数据。如果第二个用户安装该应用程序,则该用户将获得对已安装应用程序的引用,并且不会复制或安装任何新内容。
普通的 Win32 安装程序不仅将文件放入“Program Files”文件夹中,还将可编辑的文件放入“Local AppData”文件夹中
这似乎是一个问题场景,我们会通知相关团队进行检查并完善文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)