我正在开发一个 WPF(桌面桥)应用程序,它在启动时和进程外后台任务中执行一些逻辑。此逻辑在用户的 Documents 文件夹中创建并使用一个文件。
根据 Microsoft 开发人员博客上的文章,我在 WPF(桌面桥)应用程序中创建了进程外 BG 任务:链接
为了使用 Documents 文件夹,我在 Package 项目的清单中添加了适当的权限:
<Capabilities>
<uap:Capability Name="documentsLibrary" />
</Capabilities>
此外,我还为要在 Documents 文件夹中创建和打开的文件类型添加了文件类型关联权限,并使用常规/系统事件任务类型添加了后台任务声明。
但是很遗憾,KnownFolders.DocumentsLibrary.CreateFolderAsync("SubfolderName", CreationCollisionOption.OpenIfExists)
BG任务中的方法调用导致异常:Access is denied.
.
堆栈跟踪:
at Windows.Storage.KnownFolders.get_DocumentsLibrary()
at *...
WPF应用程序代码中相同逻辑的调用成功。向 BackgroundTaskWrapper (UWP) 项目添加相同的权限并不能解决问题。
任务仅在 Windows 2004 上正常工作。它不适用于以前版本的 Windows:1909、1903、1809、1709(由于项目的目标版本,未在旧版本上测试)。
示例:Github