0

龙板 410c

Windows 10 IoT 核心版 v.10.0.16273.1000

我通过 SSH 连接到机器并运行netcmd /?导致此错误:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime, Version=4.0.21.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

这是直接的“开箱即用”。

我意识到这是一个内部预览,但这应该可以,不是吗?我需要连接到企业 wifi,而这个工具是我知道的唯一方法。

有没有一种不需要等待新版本的快速方法来解决这个问题?

谢谢!

4

2 回答 2

1

对于这篇文章的未来访问者。 netcmd.exe已在 IOT Core 中弃用。

Microsoft 硬件开发中心 IoT 核心功能列表 (10/15/2018)

IOT_NETCMD(已弃用)

添加命令行工具:netcmd.exe,用于配置网络连接。在 Windows 10 版本 1803 中已弃用。升级到版本 1803 时将删除 netcmd.exe。使用 Windows.Devices.WiFi.WiFiAdapter管理 Wifi。请参阅WiFi 连接器 示例。

https://docs.microsoft.com/en-us/windows/iot-core/release-notes/currentcommercial

于 2018-08-09T16:46:09.247 回答
0

NETCMD 似乎在 10.0.16xxx 中被破坏(至少高达 16299)。

来自微软

我使用了类似于 WiFiConnect 示例的代码。

在后台任务计时器中:

if (!(wifi.IsConnected("WIRELESS_SSID")))
{
   await wifi.WiFiReconnect();
}

在我的 WiFi.cs 中:

public async Task InitWiFi()
{
    // Request access to WiFiAdapter
    WiFiAccessStatus access = await WiFiAdapter.RequestAccessAsync();

    var result = await DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector()).AsTask();
    if (result.Count >= 1)
    {
         firstAdapter = await WiFiAdapter.FromIdAsync(result[0].Id);

         await firstAdapter.ScanAsync();
         ssid= firstAdapter.NetworkReport.AvailableNetworks.Where(y => y.Ssid == "YOUR_SSID").FirstOrDefault();
    }

}

public bool IsConnected(string network)
{
    string profileName = GetCurrentWifiNetwork();
    if (!String.IsNullOrEmpty(profileName) && (network == profileName))
    {
        return true;
    }
    return false;
}

public async Task<Boolean> WiFiReconnect()
{
      Task<WiFiConnectionResult> didConnect = null;
      WiFiConnectionResult result = null;
      WiFiReconnectionKind autoConnect = WiFiReconnectionKind.Automatic;
      var credential = new PasswordCredential("DOMAIN", USERNAME, "PASSWORD");
      didConnect = firstAdapter.ConnectAsync(ssid, autoConnect, credential).AsTask();
      result = await didConnect;
      if (result.ConnectionStatus == WiFiConnectionStatus.Success)
      {
           return true;
      }
      else
      {
           return false;
      }
 }

private string GetCurrentWifiNetwork()
{
      var connectionProfiles = NetworkInformation.GetConnectionProfiles();
      if (connectionProfiles.Count < 1)
      {
           return null;
      }
      var validProfiles = connectionProfiles.Where(profile =>
      {
           return (profile.IsWlanConnectionProfile && profile.GetNetworkConnectivityLevel() != NetworkConnectivityLevel.None);
      });
      if (validProfiles.Count() < 1)
      {
           return null;
      }
      ConnectionProfile firstProfile = validProfiles.First();
      return firstProfile.ProfileName;
 }
于 2017-12-01T15:25:52.383 回答