iText7 with Android in Xamarin Compile Issue

342 Views Asked by At

I have a project which uses a NuGet package called "iText" library. It has a dependency on the System.Runtime.Loader package. When I try to build the project, I got the exception copied below, because it tries to load a placeholder assembly with the name ".". Works fine for UWP and iOS.

The problem occurs on both Visual Studio 2017 and Visual Studio for Mac. Both with the latest versions, with the latest Xamarin framework versions too.

Also, if I remove that file from the referred folder, and place the System.Runtime.Loader.dll from the netstandard1.5 folder, and set the linking to "None", it works fine.

Exception:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2): Error: Exception while loading assemblies: Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA0009: Error while loading assembly: /Users/xxxx/.nuget/packages/system.runtime.loader/4.3.0/lib/MonoAndroid10/. ---> System.BadImageFormatException: Format of the executable (.exe) or library (.dll) is invalid. at Mono.Cecil.PE.ImageReader.ReadImage () [0x000fc] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil.PE/ImageReader.cs:94 at Mono.Cecil.PE.ImageReader.ReadImage (Mono.Disposable1[T] stream, System.String file_name) [0x0000a] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil.PE/ImageReader.cs:759 at Mono.Cecil.ModuleDefinition.ReadModule (Mono.Disposable1[T] stream, System.String fileName, Mono.Cecil.ReaderParameters parameters) [0x00008] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/ModuleDefinition.cs:1167 at Mono.Cecil.ModuleDefinition.ReadModule (System.String fileName, Mono.Cecil.ReaderParameters parameters) [0x00078] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/ModuleDefinition.cs:1139 at Mono.Cecil.AssemblyDefinition.ReadAssembly (System.String fileName, Mono.Cecil.ReaderParameters parameters) [0x00001] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/AssemblyDefinition.cs:134 at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.ReadAssembly (System.String file) [0x00123] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:170 at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Load (System.String fileName, System.Boolean forceLoad) [0x00029] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:136 --- End of inner exception stack trace --- at Java.Interop.Tools.Diagnostics.Diagnostic.Error (System.Int32 code, System.Exception innerException, System.String message, System.Object[] args) [0x00000] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Diagnostics/Java.Interop.Tools.Diagnostics/Diagnostic.cs:165 at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Load (System.String fileName, System.Boolean forceLoad) [0x00034] in /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:138 at Xamarin.Android.Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly (NuGet.ProjectModel.LockFile lockFile, Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver, System.String assemblyPath) [0x00151] in :0 at Xamarin.Android.Tasks.ResolveAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver) [0x001ac] in :0

0

There are 0 best solutions below