无法在 Azure Functions 的单元测试中加载文件或程序集 System.Net.Http,版本 = 4.1.1.0

Could not load file or assembly System.Net.Http, Version=4.1.1.0 in Unit Test for Azure Functions

我有一个 Azure Function 项目(使用 VS 2017 15.3.4 创建)。我在同一解决方案 (4.6.1) 中添加了一个单元测试项目。一旦我添加对我的 Azure 函数项目的引用,并尝试 运行 我的简单测试用例,我就会在执行 MyFunction 的 运行 方法时收到此错误 "Could not load file or assembly System.Net.Http, Version=4.1.1.0"。

Exception Image 我尝试了很多推荐的方法,但似乎没有任何效果。

我尝试在 app.config 文件中添加绑定

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
  </dependentAssembly>

我已经尝试为 System.Net.http 显式添加 nuget 包(从最新版本到后面的几个版本),但这也无济于事。

有没有人设法找到解决方案?

谢谢 桑杰

有一种方法可以做到这一点,但并不完全简单:

  • 创建 单元测试 (.NET Core) 项目而不是 单元测试 (.NET Framework)。这会强制它使用新的项目系统。
  • 编辑单元测试项目的 csproj。
  • <TargetFramework>netcoreapp2.0 更改为 net461。注意:您无法从 VS UI 更改此设置,因此需要手动编辑!
  • 在 VS 中,添加对函数项目的引用

现在一切都应该好得多了。例如有关完整示例,请参阅 https://github.com/vijayrkn-test/FunctionsProjectWithClassLib