You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP应用使用Microsoft.Azure.Devices.Client调用API时引发文件未找到异常

解决UWP应用调用Azure IoT Hub SDK时的System.IO.FileNotFoundException异常

我之前碰到过一模一样的UWP+Azure IoT Hub依赖问题,这个错误的核心原因是UWP基于的.NET(Core)运行环境,和旧版IoT Hub SDK依赖的.NET Framework组件版本不兼容,导致找不到指定的System.Net.Security程序集。下面给你几个亲测有效的解决步骤:

1. 优先更新Azure IoT Hub SDK版本

旧版的Microsoft.Azure.Devices.Client NuGet包对.NET Framework的组件有强版本依赖,而UWP的运行环境里对应的组件版本和这个要求不匹配。建议你直接把这个包更新到最新稳定版——新版本已经做了UWP兼容性优化,会自动适配UWP的依赖体系。

  • 操作步骤:打开Visual Studio的NuGet包管理器,找到Microsoft.Azure.Devices.Client,选择更新到最新版,之后清理解决方案再重新生成项目。

2. 添加程序集绑定重定向

如果更新SDK后问题依旧,可以手动添加绑定重定向,让系统把对旧版本System.Net.Security的请求,重定向到UWP环境中可用的版本:

  • 在UWP项目中新建或编辑app.config文件,添加以下配置:
    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Net.Security" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  • 保存后重新生成项目,让配置生效。

3. 调整UWP项目的Windows版本设置

过低的UWP目标版本可能会缺少必要的.NET组件兼容支持:

  • 右键UWP项目 → 属性 → 应用程序选项卡
  • 将目标版本设置为Windows 10 1809(10.0.17763.0)或更高,最小版本不低于Windows 10 1607(10.0.14393.0)
  • 应用设置后重新生成项目。

4. 尝试使用UWP专用SDK包(备选方案)

如果主SDK包还是有问题,可以试试Microsoft.Azure.Devices.Client.Uwp这个专门为UWP优化的NuGet包(不过现在主SDK包已经整合了UWP支持,这个包更多是旧版本的兼容选项),它的依赖会更贴合UWP的运行环境。

按照上面的步骤一步步排查,应该就能解决你遇到的System.IO.FileNotFoundException异常了。

内容的提问来源于stack exchange,提问作者Pankaj Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:23