【问题标题】:Could not load file or assembly System.Net.Http, Version=4.1.1.0 in Unit Test for Azure Functions无法在 Azure Functions 的单元测试中加载文件或程序集 System.Net.Http,版本 = 4.1.1.0
【发布时间】:2017-09-19 09:25:41
【问题描述】:

我有一个 Azure Function 项目(使用 VS 2017 15.3.4 创建)。我在同一个解决方案(4.6.1)中添加了一个单元测试项目。当我添加对 Azure 函数项目的引用并尝试运行我的简单测试用例时,我在执行 MyFunction 的 Run 方法时收到此错误“无法加载文件或程序集 System.Net.Http,版本 = 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 包(从最新版本到后面的几个版本),但这也无济于事。

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

谢谢 桑杰

【问题讨论】:

标签: unit-testing azure azure-functions


【解决方案1】:

有一种方法可以完成这项工作,但并不完全简单:

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

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

【讨论】:

  • 阿汉,这值得一试。我确实尝试过创建 netcore 项目,但由于版本不匹配,我当然没有走得更远。我会试试这个,让你知道它是否有效。谢谢!
  • 我现在需要使用VS2015,我已经安装了.NET Core 2.0平台来尝试解决方法,但是'.NET Core'下没有可用的单元测试项目所以它如何可以使用此解决方法吗?
  • Azure Functions VS 工具仅适用于 VS 2017,因此不知道如何在 2015 年实现此功能。
  • 我在 VS2015 中使用这种方法:blogs.msdn.microsoft.com/appserviceteam/2017/03/16/… ...通过测试项目得到相同的异常,VS2015 不支持 .NET Core 单元测试项目吗?
  • 这是一个手动工作流程,在我们获得 VS 2017 支持之前,我们已经将它作为权宜之计。它没有得到很好的支持。
猜你喜欢
  • 2017-07-31
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 2020-07-01
  • 2021-06-26
  • 2017-03-13
相关资源
最近更新 更多