2012-08-11 21 views
5

me sale el siguiente error al hacer referencia a la DLL iTextSharpcompliation error al hacer referencia iTextSharp DLL en mono para android

C:\Program Files\MSBuild\Novell\Novell.MonoDroid.Common.targets(2,2): Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Perhaps it doesn't exist in the Mono for Android profile?

File name: 'System.Drawing.dll'

at Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)

at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly)

at Xamarin.Android.Tasks.ResolveAssemblies.Execute() (Dashmate)

También he intentado añadir System.Drawing.dll, pero todavía no resolver el error .

Adivina la System.Drawing dentro del Mono.Android.dll está en conflicto con la System.Drawing.dll que está siendo referenciado por el iTextSharp

Respuesta

2

Tengo esta respuesta por parte del equipo de desarrollo de Xamarin

You cannot use System.Drawing.dll which is available only in full .NET profile. Mono for Android supports only its mobile-based profile which is almost the same as Silverlight

lo tanto, supongo que no podíamos utilizar DLL de terceros que tiene el Clase "System.Drawing" :(

2

El error que está diciendo que el (administrado) enlazador no es capaz de cargar un ensamblaje Este ensamblaje es necesario para satisfacer algunas referencias requeridas por el código que está vinculando. Sin él, el vinculador no puede reescribir un ensamblaje válido más pequeño (es decir, que funcione).

En este caso parece que iTextSharp compilado con escritorio montajes estructurales (es decir, la versión 2.0.0.0 es la indirecta, mono para las versiones de Android sería 2.1.x).

En general, la solución a tales problemas es recompilar el proyecto (iTextSharp en este caso) contra los ensamblajes que proporciona Mono para Android. De esta forma, todas las referencias serán en contra de los ensamblajes M4A y el enlazador podrá procesarlos (ya que no les faltará nada, de lo contrario fallarían en el momento de la compilación).

Tenga en cuenta que puede que no sea posible volver a compilar, desde la fuente, iTextSharp si depende de demasiadas cosas de System.Drawing.dll.

Also I tried to add System.Drawing.dll , but it still did not resolve the error.

Usando escritorio asambleas es poco probable que funcione (ya que dependen de diferentes montajes, con diferentes tipos ...).

Además, el System.Drawing.dll incluido con Windows (o Mono) no funcionaría con Mono para Android ya que dependen de GDI + (o libgdiplus para Mono) que no es parte de Android.

Guess the System.Drawing within the Mono.Android.dll is conflicting with the System.Drawing.dll which is being referenced by the iTextSharp

No hay conflicto de montaje desde Mono para Android no no buque con un conjunto System.Drawing.dll. Sin embargo, algunos tipos (por ejemplo, Rectangle[F], Point[F] y Size[F]) están incluidos (en otro ensamblado) que utilizan los espacios de nombres System.Drawing.*, ya que son útiles (y conocidos) para los desarrolladores de .NET.

+1

Hola , He tratado de usar diferentes bibliotecas que hacen referencia solo al ** System.Drawing.dll **, incluida una biblioteca personalizada mía, pero el mismo problema persiste. Además, traté de usar ** System.Drawing. dll ** en la aplicación mostrada ** _ Color de clase anónima _ ** como la clase Color fue declarada tanto en System.Drawing.dll como en Mono.An Espacio de nombres de System.Drawing de droid.dll, Esto podría haber causado el problema al hacer referencia a los otros archivos DLL, cuando trato de utilizar un dll que no tiene ** Drawing.dll ** Funciona bien :( – Surya2089

Cuestiones relacionadas