【问题标题】:Wifi Adapter in Blazor wasm : System.DllNotFoundException: api-ms-win-core-winrt-string-l1-1-0.dllBlazor wasm 中的 Wifi 适配器:System.DllNotFoundException:api-ms-win-core-winrt-string-l1-1-0.dll
【发布时间】:2021-08-12 20:50:59
【问题描述】:

我一直在尝试使用 WifiAdapter 检索可用网络列表。 我有一个我一直在控制台应用程序中测试的有效解决方案:

        List<WiFiAvailableNetwork> networks = new();
        IEnumerable<WiFiAdapter> adapters = await WiFiAdapter.FindAllAdaptersAsync();
        foreach (WiFiAdapter adapter in adapters)
        {
            foreach (WiFiAvailableNetwork network in adapter.NetworkReport.AvailableNetworks)
            {
                networks.Add(network);
            }
        }
        return networks;

但是,一旦在我的 blazor wasm 项目中设置了此解决方案,它就会因以下异常而崩溃:System.TypeInitializationException: 'Windows.Devices.WiFi.WiFiAdapter' 的类型初始化程序引发了异常。 d.printErr @ blazor.webassembly.js:1 blazor.webassembly.js:1 ---> System.DllNotFoundException: api-ms-win-core-winrt-string-l1-1-0.dll

我一直在寻找答案,但没有找到任何相关的解决方案。 关于如何解决它/为什么会发生的任何想法?

提前致谢!

【问题讨论】:

    标签: c# .net blazor


    【解决方案1】:

    并非所有环境都支持 .net 平台的所有部分。

    Blazor WebAssembly 不会从 Windows 运行任何东西。* .

    当您想要访问某些设备时,您必须研究 JavaScript 是否以及如何使用它。

    【讨论】:

    • 确实,我忘记了 Wasm 还没有准备好桌面,我假设当 wasm 在桌面上运行时这段代码将可用(至少我希望如此)。
    • WebAssembly 没有前往桌面。一些 Blazor 分支是。请参阅电子或移动绑定上的 Blazor。
    【解决方案2】:

    您可以在浏览器中使用实验性 API,通过 Blazor WASM 中的 JSRuntime 调用它。

    看这里: https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2014-08-24
      • 2016-09-02
      • 2018-01-26
      • 2020-03-13
      • 2015-11-24
      相关资源
      最近更新 更多