C# 在UWP应用程序中打开串行端口时出错

C# 在UWP应用程序中打开串行端口时出错,c#,exception,serial-port,win-universal-app,windows-10-universal,C#,Exception,Serial Port,Win Universal App,Windows 10 Universal,我正在尝试按照中的说明在通用应用程序中打开串行端口 我的应用程序在Package.appxmanifest中具有正确的DeviceCapability,我可以正确枚举所有设备,并且在调用时可以找到所有设备: var selector = SerialDevice.GetDeviceSelector(); var devices = await DeviceInformation.FindAllAsync(selector); 当我试图打开任何串行端口时,就会出现问题。对SerialDevice

我正在尝试按照中的说明在通用应用程序中打开串行端口

我的应用程序在Package.appxmanifest中具有正确的DeviceCapability,我可以正确枚举所有设备,并且在调用时可以找到所有设备:

var selector = SerialDevice.GetDeviceSelector();
var devices = await DeviceInformation.FindAllAsync(selector);
当我试图打开任何串行端口时,就会出现问题。对SerialDevice.FromIdAsync的调用始终返回null

var serialPort = await SerialDevice.FromIdAsync(devices[0].Id);
然后,如中所述,我尝试分析调用DeviceAccessInformation.CreateFromDeviceId时出现的问题,令人惊讶的是,此调用引发了FileNotFoundException

我传递给DeviceAccessInformation.CreateFromDeviceId的字符串是:

"\\?\ROOT#UBLOXVCP#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}"
但它也引发了以下异常:

"\\?\ACPI#PNP0501#1#{86e0d1e0-8089-11d0-9ce4-08003e301f73}"
它们都抛出FileNotFoundException

在第9频道的视频中,Arvind Aiyar说,您可以使用Windows 10的隐私配置重新启动对串行端口的访问,但我在隐私配置中找不到任何与串行端口相关的内容

为了测试发生了什么,我尝试使用dotPeek反汇编DeviceAccessInformation.CreateFromDeviceId方法,但无法访问WinRT部分,因此我决定调用其他API

如果搜索{86e0d1e0-8089-11d0-9ce4-08003e301f73},您将看到它是为COM端口定义的设备接口类,因此我调用:

DeviceAccessInformation.CreateFromDeviceClassId(new Guid("{86e0d1e0-8089-11d0-9ce4-08003e301f73}"));
此方法不会引发任何异常并返回DeviceAccessStatus.Unspecified

我使用的是Windows 10 Pro x64版本1511,汇编10586.71,Visual Studio 2015更新1

我做错什么了吗? 都是关于权限的吗