2012-08-28 101 views
2

昨天我按照this answer建议的步骤在我的Linux Mint 13上安装了MonoDevelop 3.0。然而,当我尝试创建一个新的解决方案,任何提供类型的,我得到以下错误:System.TypeLoadException和MonoDevelop

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 

这个错误是什么意思?我该如何解决呢?谢谢。

+0

这看起来像是一些内部的P/Invoke调用(即对本机代码的托管调用)在Mono引擎本身内失败 - 可能与Linux Mint存在一些兼容性问题。 –

+0

@JackP。,谢谢。可能的解决方案? – missingfaktor

+0

您是否遇到任何项目类型(例如,C#,F#等)或仅F#项目的此错误? –

回答

3

我的一台开发机器设置为双启动Windows 7和Ubuntu 12.04,由于我只在Ubuntu上安装了Monodevelop 2.8,我以为我会按照您引用的答案(来自askubuntu)中的步骤操作。

当我跑了sudo apt-add-repository ppa:directhex/ppa命令,我有一个大的警告消息说,PPA总是包含最新,可能不稳定来源MonoDevelop的,并使用PPA从badgerports.org,而不是建议。 Badgerports仅使用稳定的,经过测试的源代码 - 截至撰写本文时,它的版本号为3.0.3.2+dfsg-1~dhx1~precise1

因此,我击中Ctrl+C取消了apt-add-repository命令,而是遵循这些instructions to set up the Badgerports PPA。在那之后,我跑更新本地包数据库和安装MonoDevelop的命令:

sudo apt-get update 
sudo apt-get install monodevelop 

一旦被安装MonoDevelop的,我能启动它,并创建/编译/调试没有问题的一个新的C#示例项目。

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

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

如果在从Badgerports安装后无法使用Monodevelop,则应联系Mono和Monodevelop开发人员,让他们调查此问题 - 该异常消息使我相信这可能是Mono中的一个错误,但Monodevelop中也可能存在一个触发它的错误。

+0

无法在此处设置badgerports PPA。软件经理说GPG密钥可能被破坏或无效。 – missingfaktor