我开始从一个新的.Net 4.6.2单元测试项目中获益。这真的很奇怪,所以我打算用一个简化的项目进行复制,我已经put on Github并附上了。在VS中解压缩并运行Nuget还原。有2个提交。第一个是失败的,第二个是在删除" Microsoft.Extensions.Logging.Abstractions"和Microsoft.Extensions.Logging NuGet包。重新添加该包将导致测试失败。
请帮我理解这个奇怪的问题。这个软件包是否来自.Net Standard?根据{{3}},System.Net.Http
来自.NET Core + Platform Extensions,但我没有使用.Net Core。
我该怎么做才能继续使用System.Net.Http
版本4.0.0.0?
构建输出具有:统一主要参考" System.Net.Http,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"。
更新注意:我在第一次提交中执行了同样的删除Nuget包的练习并且测试没有通过,因此所有这些都可能是一个红色的鲱鱼。下面的屏幕截图显示我一次成功了。
更新2:我一步一步地提交了它:apisofnet。我删除了所有包,然后在删除最后一个包后,Microsoft.Extensions.DependencyInjection.Abstractions - system.Net.http缺少构建错误。然后我在ReSharper的参考文献中添加了单元测试!
上次更新:降级到.Net 4.5.2也解决了这个问题。我真的不想这样做: - )。
https://github.com/aligneddev/UseSystemNetHttpReferencing/commits/reproduce
答案 0 :(得分:2)
在 UseSystemNetHttp.Test项目的app.config中添加绑定重定向可以解决您的问题:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>