我正在使用“ Desktop Bridge ”转换工具将Win32应用程序(Zoom Player)转换为UWP AppX模型。
在Windows VISTA中引入的文件夹模型下,不需要创建/写入访问权限的应用程序文件安装在“ Program Files ”文件夹下,需要创建/写入访问权限的文件安装在LocalAppData文件夹(“ C:\ Users \当使用FOLDERID_LocalAppData参数调用“ SHGetKnownFolderPath ” WinAPI函数时,请单击“ bLight \ AppData \ Local ” 。
我的问题是由Desktop Bridge创建的AppX文件将安装目标为安装程序的文件安装到“ FOLDERID_LocalAppData”(C:\ Users \ bLight \ AppData \ Local \ Zoom Player)中:
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放在同一目录中的日志文件。不支持此功能,因此您需要查找其他位置,例如本地应用程序数据存储。
请参阅此处的准备将桌面应用转换为UWP的部分。
----------------更新1 ----------------
引用:
AppX安装程序是否不可能自动将某些文件放入本地应用程序数据文件夹中?
是的。推荐的模式是将模板文件包含在安装包中,然后在首次使用时将其复制到本地应用程序数据文件夹中。安装应用程序包后,它将被复制到系统中。它不运行任何初始化代码。它不知道哪些用户将运行该应用程序,并且无权访问其用户数据。如果第二位用户安装了该应用程序,则该用户将获得对已安装应用程序的引用,并且不会复制或安装任何新内容。
普通的Win32安装程序不仅将文件放置在“ Program Files”文件夹中,还将可编辑文件放置在“ Local AppData”文件夹中
这似乎是一个问题场景,我们将注意到相关团队对其进行检查并完善文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句