微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WPF Desktop Bridge进程外后台任务无法访问Documents文件夹

如何解决WPF Desktop Bridge进程外后台任务无法访问Documents文件夹

我正在开发WPF(桌面桥)应用程序,该应用程序在启动和进程外后台任务中执行一些逻辑。这种逻辑会在用户的“文档”文件夹中创建并使用一个文件

根据Microsoft开发者博客上的文章Link

,我已经在WPF(桌面桥)应用程序中创建了进程外BG任务

要使用Documents文件夹,我向Package项目的清单添加了适当的权限:

<Capabilities>
    <uap:Capability Name="documentsLibrary" />
</Capabilities>

此外,我还对要创建并在“文档”文件夹中打开的文件类型和“常规/系统”事件任务类型的“后台任务”声明中添加了“文件类型关联”权限。

但是,不幸的是,在BG任务中调用KNownFolders.DocumentsLibrary.CreateFolderAsync("SubfolderName",CreationCollisionoption.OpenIfExists)方法会导致异常:Access is denied.

堆栈跟踪:

at Windows.Storage.KNownFolders.get_DocumentsLibrary()
at *...

WPF应用程序代码中相同逻辑的调用成功。向BackgroundTaskWrapper(UWP)项目添加相同的权限并不能解决问题。

该任务仅在Windows 2004上正常运行。在Windows的早期版本上无法正常运行:1909、1903、1809、1709(由于项目的目标版本,未在较旧版本上进行测试)。

示例:Github

解决方法

WPF Desktop Bridge进程外后台任务无法访问Documents文件夹

在测试期间,它可以在我的环境(操作系统版本2004)中的后台任务中成功创建text.bgtxt文件。并且该问题已在最新的OS版本中修复。请尝试将您的操作系统更新为最新版本。

主要问题是迁移到2004版的用户还不多(我的应用程序在1809-1909年有很多用户)。

添加图片库功能后,我试图在图片库中创建该文件夹,并且该文件夹可以工作。因此,目前的解决方法是使用图片库代替文档库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。