c# - MonoDevelop 的 System.TypeLoadException

标签 c# f# mono monodevelop linux-mint

昨天,我按照 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 

此错误意味着什么?如何修复它?谢谢。

最佳答案

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

当我运行 sudo apt-add-repository ppa:directhex/ppa 命令时,我收到一条很大的警告消息,指出 PPA 始终包含最新的、可能不稳定 Monodevelop 的来源,并建议使用 badgerports.org 中的 PPA反而。 Badgerports 仅使用稳定、经过测试的源 - 截至撰写本文时,它的 Monodevelop 版本为 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# 插件,我在顶级菜单之一(我认为是“工具”)下找到了“插件”选项,展开了树的“语言绑定(bind)”节点,选择了F# 语言绑定(bind)并单击“安装”。那时,我能够毫无问题地创建/构建/调试一个新的 F# 项目。

警告:我从 Windows/VS2010 复制了现有的 F# 项目,然后尝试构建/调试它。我遇到了与您类似的错误,然后 Monodevelop 严重崩溃(我不得不杀死该进程)。

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

关于c# - MonoDevelop 的 System.TypeLoadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165014/

相关文章:

c# - ReadOnlyCollection vs Liskov - 如何正确建模可变集合的不可变表示

c# - List<T>.AddRange/InsertRange 创建临时数组

c# - 用于 C# mono 和 Unity3d 的 Consulo IDE,是否可行?

.net - .NET 执行环境 (DNX) 是否类似于 Mono?

ubuntu - 如何让 F# 与 Mono 一起工作?

c# - Ubuntu 上的目标语言是什么?

c# - 在 C# 中是否有等效于 JavaScript parseInt 的东西?

c# - 使用比例网格大小时(*)如何自动限制行/列的最小尺寸?

.net - 在 F# Interactive 中创建新的 AppDomain

f# - 使用自定义版本的 FSharp.Core.dll