【问题标题】:App installed via MSIX package 'forgets' virtual LocalAppData path通过 MSIX 包安装的应用程序“忘记”虚拟 LocalAppData 路径
【发布时间】: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

文件存在于虚拟目录中。

我错过了什么吗?

【问题讨论】:

    标签: c# .net msix appinstaller


    【解决方案1】:

    只有当文件已经存在于机器上时,应用程序才应该在真实的 AppData 文件夹中查找文件。 (实际 AppData 文件夹优先于虚拟文件夹)。

    真正的 AppData 应用程序文件夹是否为空/丢失,或者是否有以前测试的任何文件?你能在干净的机器上重现这个吗,例如在虚拟机中?

    【讨论】:

    • 文件和目录从未出现在真正的 AppData/Local 文件夹中。是的,这是在干净的机器上复制的。
    • 您的包中是否有多个 EXE,或者您是否正在启动另一个可能尝试从错误位置加载文件的外部 EXE? (因为它不在你应用的虚拟容器中运行)
    • 不,事实并非如此。虽然,该应用可能会尝试在不同的线程中访问文件。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多