我创建了一个库,以使用C#HttpClient调用第三方Web服务。
该库必须是兼容版本的Dot Net Core(我使用V2.2)和Dot Net Framework(我使用V461)。
我对我的图书馆使用了多目标定位。我在* .csporj文件中设置以下内容:
<TargetFrameworks>netcoreapp2.2;net461</TargetFrameworks>
<ItemGroup Condition="'$(TargetFramework)' == 'net461'">
<Reference Include="System.Net.Http" />
</ItemGroup>
然后我创建了一个单元测试项目以使用xUnit(2.4.1)。
测试(netcoreapp2.2)工作正常。但是test(net461)抛出错误。
我从xUnit测试项目调试到我的库,语句
“HttpResponseMessage httpResponse = await _httpClient.SendAsync(httpRequestMessage);”
引发错误
错误消息为“发送请求时发生错误。”,
并且InnerException消息是“远程主机强行关闭了现有连接”。
笨蛋!
首先,我认为我的代码在Dot Net Core和Dot Net Framework之间的兼容版本有一些错误,
我试图找出要研究的问题,例如仅创建net461项目,它看起来像xUnit一样工作,依此类推。
最后我意识到应该是xUnit问题!
我更改为使用NUnit创建可同时在net Core和net Framework上运行的单元测试项目。
我的图书馆没有任何问题。
我希望我的经验能对开发人员有所帮助。谁有xUnit解决方案,请分享您的东西!
如果我对此案有任何错误,请告诉我。我也想用xUnit。
如果这是xUnit问题,我希望可以帮助xUnit团队解决它。
谢谢。