我的mono安装坏了吗?

我的mono安装坏了吗?,mono,automapper,Mono,Automapper,我正在openSUSE 12.1上运行mono 2.10.6。在/usr/lib/mono/4.0或/usr/lib/mono/2.0中不应该有System.Data.dll吗 我正在测试一个在windows上编译的.NET应用程序。该应用程序引用了automapper,我在尝试运行该应用程序时遇到以下错误: Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type

我正在openSUSE 12.1上运行mono 2.10.6。在/usr/lib/mono/4.0或/usr/lib/mono/2.0中不应该有System.Data.dll吗

我正在测试一个在windows上编译的.NET应用程序。该应用程序引用了automapper,我在尝试运行该应用程序时遇到以下错误:

Unhandled Exception: System.TypeInitializationException: An exception  
was thrown by the type initializer for AutoMapper.Mappers.DataReaderMapper --->
System.IO.FileNotFoundException: Could not load file or assembly 'System.Data,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its
dependencies.

File name: 'System.Data, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089'
以下是mono--version的输出:

linux-19xt:~ # mono --version
Mono JIT compiler version 2.10.6 (tarball Sat Oct 29 18:16:09 UTC 2011)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          debugger softdebug
    LLVM:          supported, not enabled.
    GC:            Included Boehm (with typed GC and Parallel Mark)

Mono的程序集没有与Microsoft相同的PublicKeyToken,因为Microsoft不会与Mono团队共享密钥,因此您需要将AutoMapper配置为忽略PublicKeyToken

但是,我不确定AutoMapper是否可以配置为与Mono一起使用,因为没有任何官方公告,GitHub上也存在一个问题

还有一条关于这个的邮件线索

安装“mono complete”或“mono Develop”,您将不会再看到此问题。取消绑定时,命令为

sudo apt-get install mono-complete
或用于monodevelop ide(也安装mono complete)


我有3个虚拟机(1个只安装了mono运行时,1个安装了monodevelop ide,1个安装了mono complete),它们都运行完全相同的可执行文件,但只有一个看到您描述的问题的虚拟机是只安装了mono运行时的虚拟机。运行上面的“mono complete”命令修复了问题。

问题是在Windows上编译的
。在不同的平台上,可执行文件的结构是不同的。它需要在openSUSE上编译。@cole johnson谢谢,但不完全正确。NET程序集由windows上的CLR和开源.NET framework实现mono解释。它们包含相同的MSIL,是的。但是Windows PE可执行文件和ELF Linux可执行文件的结构不同。另外,正如
lexli
所指出的,签名算法是不同的。
sudo apt-get install monodevelop