我有一个项目,我最近将json nuget包升级到v10。 同一个项目还引用了System.Net.Http.Formatting(通过Microsoft.AspNet.WebApi.Client.5.2.3包) - 它引用了json v6.0 dll。
我在测试项目中有一个app.config:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
当我在VS中运行测试时,所有测试都通过了。
但是,当我使用MsTest命令(C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE中的第12版)运行相同的测试时,一堆测试方法失败,但有例外:
System.IO.FileNotFoundException: System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified
这是测试方法中失败的确切行:
HttpRequestMessage.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
我检查了我的整个解决方案并确认没有任何项目对json v6有任何引用。
当我使用MsTest时,有没有理由忽略重定向? (我也可以在测试项目的bin文件夹中看到带有重定向的testProjectName.dll.config)
此外,我读到使用testsettings文件可以解决此问题,但我不清楚我需要在testsettings文件中重定向到更新的json。