MonoDevelop的System.TypeLoadException

时间:2012-08-28 18:08:10

标签: c# f# mono monodevelop linuxmint

昨天我按照this answer中建议的步骤在我的Linux Mint 13设置上安装了MonoDevelop 3.0。但是,当我尝试创建任何提供的类型的新解决方案时,我收到以下错误:

An error has occurred.

A type load exception has occurred.

System.TypeLoadException: A type load exception has occurred.
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

此错误意味着什么,我该如何解决?感谢。

1 个答案:

答案 0 :(得分:3)

我的一台开发机器设置为双启动Windows 7和Ubuntu 12.04,因为我只在Ubuntu上安装了Monodevelop 2.8,我想我会按照你引用的答案(来自askubuntu)的步骤进行操作。 / p>

当我运行sudo apt-add-repository ppa:directhex/ppa命令时,我收到一条很大的警告消息,说PPA总是包含Monodevelop的最新的可能不稳定的源,并建议使用来自{{的PPA。 3}}而不是。 Badgerports只使用稳定的,经过测试的资源 - 在撰写本文时,它具有Monodevelop版本3.0.3.2+dfsg-1~dhx1~precise1

因此,我点击Ctrl+C取消apt-add-repository命令,然后点击这些badgerports.org。之后,我运行命令来更新本地包数据库并安装Monodevelop:

sudo apt-get update
sudo apt-get install monodevelop

一旦安装了monodevelop,我就可以启动它并创建/构建/调试一个新的C#示例项目而不会出现问题。

要安装F#加载项,我在其中一个顶级菜单(我认为是“工具”)下找到了一个“加载项”选项,展开了树的“语言绑定”节点,选择了F#语言绑定并单击“安装”。那时,我能够毫无问题地创建/构建/调试新的F#项目。

警告:我从Windows / VS2010复制了现有的F#项目,然后尝试构建/调试它。我得到了一个类似于你的错误,然后Monodevelop严重崩溃(我不得不kill这个过程。

如果从Badgerports安装后无法让Monodevelop正常工作,你应该联系Mono和Monodevelop开发人员让他们调查这个 - 这个异常消息让我相信它可能是Mono中的一个bug,但是那里也可能是Monodevelop中的一个错误,它正在触发它。