0

MsgPackを使用して一部のF#タイプをシリアル化すると、VerificationException「操作によってランタイムが不安定になる可能性があります」エラーが発生しました。コンパイラは、競合するクラスライブラリがロードされる可能性があることも示唆していますが、これは赤いニシンのようです。

エラーの原因はすぐにはわかりません。コミュニティの利益のために、以下の解決策を投稿してください。


以下のコメントに応えて:

....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>
4

1 に答える 1

0

問題は、シリアル化ライブラリである MsgPack が特定の DateTime 形式または規則をサポートしていないことです。

ただし、エラー メッセージの出力は誤解を招くものであり、何が起こっているのかについてより多くの手がかりを見つけることができるのは、例外をさらに深く掘り下げる場合だけです。

別の解決策として、代わりに Unix タイムスタンプまたは .Net Ticks [100ns] の概念を基礎となる値/フィールドに使用し、適切なメンバー定義を使用して System.DateTime を公開することができます。

于 2013-03-13T10:50:31.787 に答える