2015-05-09 51 views
0

我用單4例外:關於單聲道4.x反射的改變是什麼? (單聲道3.x的兼容性)

Unhandled Exception: 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidProgramException: Invalid IL code in (wrapper delegate-invoke) <Module>:invoke_callvirt_CancellationTokenRegistration_CancellationToken&_Action`1<object>_object (System.Threading.CancellationToken&,System.Action`1<object>,object): IL_0057: castclass 0x00000007 

更多詳細信息可在這裏:https://github.com/Anthilla/Antd/issues/8

一切都建立罰款單3.2.x, 3.12.1 and other 3.x4.0.0-beta開始(4.0.14.0.1.28)我」米得到這個奇怪的例外。

所以我想知道如果沒有IL兼容性,那麼如何使用nuget? 4.x中反射的改變是什麼?

同樣的問題在這裏:Issue after updating to mono 4.0.1 on Ubuntu

回答

0

http://www.mono-project.com/docs/about-mono/releases/4.0.0/

  • 採用微軟的開放源代碼
  • C#6.0
  • 浮點優化
  • 我們取消了對2.0的支持,3.5和4.0組件
  • 更新IKVM
  • 打火機調試開銷
  • 基本PowerPC64 LE支持

(我加了粗體)

他們改變了許多類從他們( 「原始」 單聲道),實現對微軟的人(http://referencesource.microsoft.com),所以目前與Mono兼容的許多「黑客」現在無法使用,因爲所使用的CLR庫是微軟的,它們可能引入了新的bug,因爲它們甚至將參考源中的一些代碼改爲使其兼容。這是一個「停止火車,改變世界」的版本。