尽管使用broadFileSystemAccess

时间:2018-11-28 11:41:19

标签: c# uwp manifest

UWP杀死了我.....

计算机崩溃后,我不得不重新安装VisualStudio2017。现在,在崩溃拒绝之前,我的应用运行良好。

按照MS文档中的说明,我一直在使用Package Manifest中的broadFileSystemAccess功能:

 xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
 IgnorableNamespaces="rescap uap mp desktop4 iot2">

<Capabilities>
<rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>

这没问题,但是现在我得到一个带下划线的rescap:Capability和编译警告“名称空间'http://schemas.microsoft.com/appx/manifest/foundation/windows10'中的元素'Capabilities'在名称空间中具有无效的子元素'Capability'.. ..

由于是警告,因此编译时不会发生异常。但是,如果此清单代码不存在,应用程序将无法访问文件(拒绝访问)。

我拒绝说坏话。...任何人都不知道是什么原因造成的?这是全新的VS2017安装。

谢谢!

3 个答案:

答案 0 :(得分:1)

感谢您报告此问题。这是1809年的一个已知问题。相关团队正在对此进行研究。

Clint Rutkas对此线程做了回复:No user-consent prompt on first run of broadFileSystemAccess-capable UWP app

他建议我们可以使用try/catch来解决这种情况:

try
{
    StorageFile storageFile = await StorageFile.GetFileFromPathAsync(@"E:\Foo");
}
catch (Exception)
{
    // prompt user for what action they should do then launch below
    // suggestion could be a message prompt
    await Launcher.LaunchUriAsync(new Uri("ms-settings:appsfeatures-app"));
}

答案 1 :(得分:1)

好的,这是我的一些发现。

1。应用程序不得同时声明broadFileSystemAccess和其他三个文件系统功能中的任何一个。 (图片,文档,下载)

来源:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/415d02da-eeb6-45b3-b6e2-946b124d14b0/broadfilesystemaccess-issue?forum=wpdevelop

2。这仅适用于storageFile API而非File.Exists etc API

来源:https://docs.microsoft.com/en-gb/windows/uwp/packaging/app-capability-declarations

3。确保与其他两个答案一样启用了fileAccess:

来源:https://stackoverflow.com/a/57703368/2987066

4。我还发现,每次我开始调试(并且代码已更改)时,我都需要重新打开和关闭该设置才能使其正常工作

源:通过反复试验挫败地调试应用程序

感谢微软提供的出色开发环境,它确实显示出开发人员非常喜欢开发您的应用程序,因为与竞争对手相比,您的商店正在蓬勃发展...等等。

答案 2 :(得分:0)

您还需要允许您的应用访问“设置”中的文件系统。这是一项安全措施,因此计算机的用户确认您的应用程序可以在其运行于其中的UWP应用程序容器提供的文件的受控访问权限之外进行访问。

enter image description here

相关问题