C# 在手动添加文件后尝试访问uwp publisher缓存时发生UnauthorizedAccessException
我有一个使用publisher缓存文件夹的应用程序。我将一些文件复制到相应的目录C# 在手动添加文件后尝试访问uwp publisher缓存时发生UnauthorizedAccessException,c#,uwp,C#,Uwp,我有一个使用publisher缓存文件夹的应用程序。我将一些文件复制到相应的目录C:\Users\\AppData\Local\Packages\\Folder中,现在我得到一个UnauthorizedAccessException试图查询这些文件 这是我在botton添加到appx清单的内容,就在之前: <Extensions> <Extension Category="windows.publisherCacheFolders"> <Publishe
C:\Users\\AppData\Local\Packages\\Folder
中,现在我得到一个UnauthorizedAccessException
试图查询这些文件
这是我在botton添加到appx清单的内容,就在
之前:
<Extensions>
<Extension Category="windows.publisherCacheFolders">
<PublisherCacheFolders>
<Folder Name="Folder"/>
</PublisherCacheFolders>
</Extension>
</Extensions>
异常详细信息表明异常是从GetFileAsync
引发的,因为它实际上是由内部等待程序引发的。我做错了什么?当我上周四写代码时,一切正常。今天,我想演示一下,得到了这个例外。appxmanifest中的声明不应该足够吗?或者我遗漏了什么
编辑:我刚刚注意到我也无法再写入publisher缓存文件夹。尝试创建一个新的空文件
shared.txt
,我也会得到相同的UnauthorizedAccessException
。这可能是发布者证书的问题吗?我使用的是自签名测试证书,我也为用户和本地计算机手动安装了该证书。最后,我成功地消除了错误消息。然而,这个解决方案并不好,如果有人有更好的,我会非常感激
UnauthorizedAccessException
AccessViolationError
,但这个错误没有传递给托管代码,所以一切都很好我猜这是一个完整性级别的问题(或其他基本ACL问题)。您使用资源管理器以中等IL复制了文件,但应用程序的IL较低。我相信命令行工具
icacls
可以告诉您这一点。基本上,应用程序文件夹不应该被普通用户使用。@PeterTorr MSFT实际上我写了一个小程序来复制文件,因为我太懒了,一直都不想这么做。但是,将完整性级别设置为较低也无法解决问题。调试发布者文件夹内容的预期方法是什么?@PeterTorr MSFT…为什么它以前可以工作?@PeterTorr MSFT因为我甚至没有写访问权限,我想这不是ACL的问题,但很遗憾,我的设置似乎有问题,但我无法解决。
await ApplicationData.Current.GetPublisherCacheFolder("Folder").GetFileAsync(location)