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安装。
谢谢!
答案 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和其他三个文件系统功能中的任何一个。 (图片,文档,下载)
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)