C# XmlPreloadeResolver上的Mono TypeLoadException

C# XmlPreloadeResolver上的Mono TypeLoadException,c#,linux,ubuntu,mono,monodevelop,C#,Linux,Ubuntu,Mono,Monodevelop,我正在使用Mono将Windows控制台应用程序移植到Linux上。在我的开发机器(Ubuntu)上,这个应用程序工作起来很有魅力,但是当我在我的测试机器(一个普通的Ubuntu 14.04桌面安装)上尝试它时,我得到了以下错误: Unhandled Exception: System.TypeLoadException: Could not load type 'System.Xml.Resolvers.XmlPreloadedResolver' from assembly 'System.X

我正在使用Mono将Windows控制台应用程序移植到Linux上。在我的开发机器(Ubuntu)上,这个应用程序工作起来很有魅力,但是当我在我的测试机器(一个普通的Ubuntu 14.04桌面安装)上尝试它时,我得到了以下错误:

Unhandled Exception:
System.TypeLoadException: Could not load type 'System.Xml.Resolvers.XmlPreloadedResolver' from assembly 'System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
我为“准备”测试机所做的唯一一件事就是运行
sudo-apt-get-install-mono-complete
sudo-apt-get-upgrade
。当我在测试机上运行
dpkg--list | grep mono system xml
时,我看到:

$ dpkg --list | grep mono-system-xml
ii  libmono-system-xml-linq4.0-cil                              3.2.8+dfsg-4ubuntu1.1                               all          Mono System.Xml.Linq library (for CLI 4.0)
ii  libmono-system-xml-serialization4.0-cil                     3.2.8+dfsg-4ubuntu1.1                               all          Mono System.Xml.Serialization library (for CLI 4.0)
ii  libmono-system-xml4.0-cil
$ dpkg --list | grep mono-system-xml
ii  libmono-system-xml-linq4.0-cil                              4.2.1.102-0xamarin1                                 all          Mono System.Xml.Linq library (for CLI 4.0)
ii  libmono-system-xml-serialization4.0-cil                     4.2.1.102-0xamarin1                                 all          Mono System.Xml.Serialization library (for CLI 4.0)
ii  libmono-system-xml4.0-cil                                   4.2.1.102-0xamarin1                                 all          Mono System.Xml library (for CLI 4.0)
而在我的开发机器上,我看到:

$ dpkg --list | grep mono-system-xml
ii  libmono-system-xml-linq4.0-cil                              3.2.8+dfsg-4ubuntu1.1                               all          Mono System.Xml.Linq library (for CLI 4.0)
ii  libmono-system-xml-serialization4.0-cil                     3.2.8+dfsg-4ubuntu1.1                               all          Mono System.Xml.Serialization library (for CLI 4.0)
ii  libmono-system-xml4.0-cil
$ dpkg --list | grep mono-system-xml
ii  libmono-system-xml-linq4.0-cil                              4.2.1.102-0xamarin1                                 all          Mono System.Xml.Linq library (for CLI 4.0)
ii  libmono-system-xml-serialization4.0-cil                     4.2.1.102-0xamarin1                                 all          Mono System.Xml.Serialization library (for CLI 4.0)
ii  libmono-system-xml4.0-cil                                   4.2.1.102-0xamarin1                                 all          Mono System.Xml library (for CLI 4.0)
我不确定版本不匹配是否是根本问题,但这就是我现在要做的。我尝试通过
sudo apt get install monodevelop
在测试机上安装monodevelop,并尝试通过运行

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update

无济于事。有没有办法告诉我的开发机器上的4.2.1版本来自哪里?假设这就是区别,为什么这个模块会在标准分布中被打破?从一开始,它已经实施并稳定了很长一段时间…

所以,事实证明,这基本上只是一个操作顺序问题

在添加Xamarin提要之前,我已经安装了
mono complete
,所以我得到了Ubuntu 14附带的旧的3.8版本的mono,而不是最新最棒的版本。无论出于何种原因,在之后添加提要并执行
apt get upgrade
都无法获取更新的版本,因此您必须开始清理并按正确的顺序进行操作,或者添加提要,查看
apt cache showpkg mono complete
的输出以确定您真正想要的版本,然后指定它,如
sudo apt get install mono complete=4.2.2.30-0xamarin2