C# JSON.NET序列化跟踪-从程序集加载类型时出错-ITraceWriter

C# JSON.NET序列化跟踪-从程序集加载类型时出错-ITraceWriter,c#,serialization,json.net,trace,C#,Serialization,Json.net,Trace,我正在调试一个C#类库,它使用JSON.NET进行序列化。反序列化过程中出现转换错误,因此我使用示例代码Release 11 notes(日期为2012年11月)实现了序列化跟踪。我的代码: ProcessPlan p = ProcessPlan.TestPlan(); ITraceWriter traceWriter = new MemoryTraceWriter(); JsonConvert.SerializeObject(p, new JsonSerializerSettings { T

我正在调试一个C#类库,它使用JSON.NET进行序列化。反序列化过程中出现转换错误,因此我使用示例代码Release 11 notes(日期为2012年11月)实现了序列化跟踪。我的代码:

ProcessPlan p = ProcessPlan.TestPlan();
ITraceWriter traceWriter = new MemoryTraceWriter();

JsonConvert.SerializeObject(p, new JsonSerializerSettings { TraceWriter = traceWriter });

Console.WriteLine(traceWriter);
当此代码运行时,我收到以下消息:

CPLANPV9.UnitTest.TestRepository.SaveLoad: System.TypeLoadException:无法从程序集“Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6eed”加载类型“Newtonsoft.Json.Serialization.ITraceWriter”

项目引用中引用的DLL声明其版本为5.0.3,这正是我想要的。我无法在上面的错误消息中获得Version属性来显示除4.5.0.0之外的任何内容,尽管它可能是指框架版本号


我删除了对库的所有引用,清理了解决方案,重建了5.0.3包,然后通过NuGet重新安装了5.0.3包,但是“类型加载”问题仍然存在,错误消息和引用条目属性中的4.5.0.0也是如此。我确实有其他项目,现在已经完成,它们是用早期版本构建的,因此这可能是DLL地狱的味道。

来自JSON.NET发行说明:“请注意,JSON.NET 5.0的程序集版本号没有更改,仍然是4.5.0.0,以避免程序集重定向问题。”您可能希望检查文件版本而不是程序集版本,以找到正确的版本库corrego。文件版本正是我所需要的,因此无法加载ITraceWriter类型仍然是个谜。您是否检查了bin文件夹中的json.net程序集是否正确?是的,我检查了。它是正确的,根据Version.hmmm文件,您可以尝试激活fusion日志,并在那里检查是否加载了正确的文件。。。除此之外,我已经没有主意了:)祝你好运