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

时间:2017-09-18 20:23:21

标签: unit-testing azure azure-functions

我是一个Azure Function项目(使用VS 2017 15.3.4创建)。我在同一个解决方案中添加了一个单元测试项目(4.6.1)。只要我添加对我的Azure功能项目的引用,并且我尝试运行我的简单测试用例,我就会收到此错误"无法加载文件或程序集System.Net.Http,Version = 4.1.1.0"当我执行MyFunction的Run方法时。

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包(从最新版本到后面的几个版本),但这也没有帮助。

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

由于 桑杰

1 个答案:

答案 0 :(得分:6)

有一种方法可以使这项工作,但它并非完全直截了当:

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

现在一切都应该好多了。例如请参阅https://github.com/vijayrkn-test/FunctionsProjectWithClassLib以获取完整样本。