Winforms Microsoft Store Desktop Bridge应用程序无法访问“;“脱机文件”;来自网络共享
Microsoft应用商店上的.NET Windows窗体桌面网桥应用程序只能在非常特定的情况下才能读取网络共享文件:Winforms Microsoft Store Desktop Bridge应用程序无法访问“;“脱机文件”;来自网络共享,winforms,windows-10-universal,desktop-bridge,Winforms,Windows 10 Universal,Desktop Bridge,Microsoft应用商店上的.NET Windows窗体桌面网桥应用程序只能在非常特定的情况下才能读取网络共享文件: 网络共享文件已在Windows中标记为脱机文件(Windows同步中心功能),并且 已在共享文件上启用“始终脱机可用”,并且 网络共享文件处于脱机状态(与共享断开连接) 下面是共享/同步/脱机文件示例的屏幕截图: 从我们软件中的共享接收文件路径时(例如,U:\pdf\document.pdf),file.Exists(字符串路径)返回false,就好像文件不存在一样。使用文件
file.Exists(字符串路径)
返回false,就好像文件不存在一样。使用文件打开对话框(System.Windows.Forms.OpenFileDialog
)并导航到共享驱动器时,该对话框会显示:
将U:重新连接到\xxxxxxxx\Share Microsoft时出错
Windows网络:本地设备名称已在使用中。这
连接尚未恢复
我们的应用程序与所有桌面网桥应用程序一样,在完全信任的情况下运行。我们的软件非Microsoft Store发行版与Microsoft Store版本并行运行时,可以很好地识别和打开文件。商店中的其他UWP应用程序也可以在网络共享中打开文件
发生什么事了
更新:
根据Nico Zhu的建议,我在清单中添加了权限broadFileAccess
。我正在通过侧向加载应用程序进行测试File.Exists()
仍然返回false,但我在单击共享位置时从System.Windows.Forms.OpenFileDialog
中得到一个不同的错误--由于权限导致的网络错误:
是否需要添加其他权限?是否可能需要使用桌面网桥应用程序
更新2:
我查看了商店中其他桌面网桥应用程序的清单,它们只包括runFullTrust
权限,而不包括broadFileSystemAccess
权限。然而,他们能够打开“脱机文件”,而我的应用程序却不能,这让我相信添加额外的UWP权限不是解决方案
示例项目
您可以通过此链接项目再现此问题(VS2017 WinForms 32位项目,其中Inno安装程序通过DAC转换为appx):
WinForms应用程序只有一个按钮可以打开
System.Windows.Forms.OpenFileDialog
。我在Windows101709中加载了appx,在尝试访问脱机文件位置时看到了与我的应用相同的错误结果。网络共享由Windows Server 2019实例承载。是否为应用程序添加了功能。我没有添加broadFileSystemAccess
。我将其添加到清单中,但对于File.Exists()
,仍然得到false。我从OpenFileDialog
中得到了一个不同的网络错误
(请参阅我的后期更新)。在添加了broadFileSystemAccess功能后,您还需要在操作系统设置->隐私->文件系统中打开它。谢谢--但是,隐私->文件系统设置在Windows 10 1803之前不存在。对于以前没有这种隐私设置的操作系统版本,如Windows101709,情况如何?我已经用1709测试了broadFileSystemAccess
,但它没有解决这个问题。另外,请参阅上面我的帖子中的更新2。其他桌面网桥应用程序在其清单中未指定broadFileSystemAccess
权限,但仍可以访问文件打开对话框中的“脱机文件”,而我的应用程序则不能。您能否共享一个可以重现此问题并将直接检查问题的代码示例。