VerificationException“操作可能会破坏运行时”错误与MsgPack和.net错误

时间:2013-03-13 10:44:36

标签: c# f# msgpack

遇到VerificationException“操作可能会破坏运行时”错误,使用MsgPack序列化一些F#类型。编译器还建议可以加载冲突的类库,但这似乎是一个红色的鲱鱼。

目前还不清楚错误是由什么引起的,因此请将以下解决方案发布给社区以获益。


回应以下评论:

....Sammo\bin\Debug>peverify /verbose Sammo.exe

Microsoft (R) .NET Framework PE Verifier.  Version  4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

All Classes and Methods in Sammo.exe Verified.



....Sammo\bin\Debug>Sammo.exe
Unhandled Exception: System.Security.VerificationException: Operation could destabilize the runtime.
   at _4(MsgPackReader )
   at _3(MsgPackReader )
   at MsgPack.CompiledPacker.Unpack[T](Stream strm)
   at MsgPack.CompiledPacker.Unpack[T](Byte[] buf, Int32 offset, Int32 size)
   at MsgPack.CompiledPacker.Unpack[T](Byte[] buf)
   at <StartupCode$Sammo>.$Program.main@() in ....\Sammo\Pro
gram.fs:line 67

....\Sammo\bin\Debug>

1 个答案:

答案 0 :(得分:0)

问题在于MsgPack,一个序列化库不支持特定的DateTime格式或约定。

错误消息输出却具有误导性,只有当您深入了解异常时,才能找到更多有关正在发生的事情的线索。

作为替代解决方案,可以使用Unix时间戳或.Net Ticks [100ns]概念为基础值/字段使用适当的成员定义来公开System.DateTime。