Newtson.Json fileloadeexception仅在CI服务器上



TeamCity 9和NUnit 2.6.4在运行测试时出现问题,但在本地运行正常。这个问题似乎与Newtonsoft有关。Json(和往常一样).

Test(s) failed. System.IO.FileLoadException : Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter..ctor()
   at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor()
   at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters()
   at System.Web.Http.HttpConfiguration.DefaultFormatters(HttpConfiguration config)
   at System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes)
   at MyCompany.Testing.WebAPI.ControllerTestAssistant.PrepareActionContext(HttpRequestMessage request, IHttpController controller) 
   at MyCompany.Web.Http.HttpResponseBuilderTests.PrepareActionContext(HttpRequestMessage request) 
   at MyCompany.Web.Http.HttpResponseBuilderTests.PrepareBuilder(String url) 
   at MyCompany.Web.Http.HttpResponseBuilderTests.HttpResponseBuilder_BuildResponse__when__success_get_with_no_rowversion__then__200OK_with_no_etag() 

解决方案是巨大的。我已经更新了所有的Json。. NET包到7。我已经检查了所有配置文件中的所有绑定引用。

在所有团队的开发pc上一切都很好。这个问题只出现在构建服务器上,在NUnit运行器下。

我认为System.Net.Http.Formatting在版本6.x上有一个硬引用。就好像测试运行器没有注意到配置中的绑定重定向。

我要开始戒掉Json了。. NET,它变得比它的价值更麻烦,而且VS没有提供任何帮助来解决这些问题也无济于事。

谢谢你的帮助。

《路加福音》


Fusion日志显示没有看到程序集绑定重定向,尽管它在那里。检查同事的完整性

很奇怪。

删除了app.config中所有其他重定向,用于测试项目,并尝试仅使用Json。净重定向。


没有找到应用程序配置文件

在融合日志,越来越近!

明白了

我有一个引用到另一个测试DLL,所以bin文件夹中最终有两个*Tests.DLL文件。

TeamCity通过通配符配置,然后在两者中运行测试。引用的DLL没有配置文件,无法加载正确版本的Json。净

引用的DLL中的测试已经运行并通过。我引用了另一个测试库,以获得一些帮助器设置代码!

通常,我将TeamCity配置为在显式DLL路径上运行测试。

相关内容

  • 没有找到相关文章

最新更新