遇到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>
答案 0 :(得分:0)
问题在于MsgPack,一个序列化库不支持特定的DateTime格式或约定。
错误消息输出却具有误导性,只有当您深入了解异常时,才能找到更多有关正在发生的事情的线索。
作为替代解决方案,可以使用Unix时间戳或.Net Ticks [100ns]概念为基础值/字段使用适当的成员定义来公开System.DateTime。