我在openSUSE 12.1上運行單聲道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'
這裏是單 - 版本的輸出:
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)
問題是在Windows上編譯的。可執行文件的結構在不同平臺上有所不同。它需要在openSUSE上編譯。 –
@ cole-johnson謝謝,但不完全正確。 .NET程序集由Windows上的CLR和由開放源代碼.net框架實現的mono進行了解釋。 – robertfriberg
它們包含相同的MSIL,是的。但是Windows PE可執行文件和ELF Linux可執行文件的結構是不同的。另外,正如Lex Li指出的那樣,簽名算法是不同的。 –