通过 MSIX 包安装的应用程序“忘记”虚拟 LocalAppData 路径
Posted
技术标签:
【中文标题】通过 MSIX 包安装的应用程序“忘记”虚拟 LocalAppData 路径【英文标题】:App installed via MSIX package 'forgets' virtual LocalAppData path 【发布时间】:2021-11-15 23:41:07 【问题描述】:一些临时文件正在缓存到Environment.GetFolderPath(Environment.SpecialFolder.) + "\\Company\\App";
。
在应用启动时分配虚拟 AppData 位置。一切似乎都正常,文件正在虚拟目录 (C:\Users\User\AppData\Local\Packages\(hash)\LocalCache\Local\Company\App\file.file
) 中生成,它们应该是这样的。
尝试复制同一目录中的文件一段时间后,它会抛出:System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\User\AppData\Local\Company\App\file.file
。
文件存在于虚拟目录中。
我错过了什么吗?
【问题讨论】:
【参考方案1】:只有当文件已经存在于机器上时,应用程序才应该在真实的 AppData 文件夹中查找文件。 (实际 AppData 文件夹优先于虚拟文件夹)。
真正的 AppData 应用程序文件夹是否为空/丢失,或者是否有以前测试的任何文件?你能在干净的机器上重现这个吗,例如在虚拟机中?
【讨论】:
文件和目录从未出现在真正的 AppData/Local 文件夹中。是的,这是在干净的机器上复制的。 您的包中是否有多个 EXE,或者您是否正在启动另一个可能尝试从错误位置加载文件的外部 EXE? (因为它不在你应用的虚拟容器中运行) 不,事实并非如此。虽然,该应用可能会尝试在不同的线程中访问文件。以上是关于通过 MSIX 包安装的应用程序“忘记”虚拟 LocalAppData 路径的主要内容,如果未能解决你的问题,请参考以下文章