2015-05-09 52 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,因为它们甚至将参考源中的一些代码改为使其兼容。这是一个“停止火车,改变世界”的版本。