2

我有一个项目,它使用一个名为“iText”库的 NuGet 包。它依赖于 System.Runtime.Loader 包。当我尝试构建项目时,我得到了下面复制的异常,因为它尝试加载名称为“.”的占位符程序集。适用于 UWP 和 iOS。

Visual Studio 2017 和 Visual Studio for Mac 都会出现此问题。两者都具有最新版本,也具有最新的 Xamarin 框架版本。

此外,如果我从引用的文件夹中删除该文件,并从 netstandard1.5 文件夹中放置 System.Runtime.Loader.dll,并将链接设置为“无”,它工作正常。

例外:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2):错误:加载程序集时出现异常:Java.Interop.Tools.Diagnostics.XamarinAndroidException:错误 XA0009:加载程序集时出错:/Users/xxxx/.nuget/packages/system.runtime.loader/4.3.0/lib/MonoAndroid10/。---> System.BadImageFormatException:可执行文件 (.exe) 或库 (.dll) 的格式无效。在 Mono.Cecil.PE.ImageReader.ReadImage () [0x000fc] 在 /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil .PE/ImageReader.cs:94 在 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] 流,System.String 文件名,Mono.Cecil.ReaderParameters 参数)[0x00008] 在 /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external /cecil/Mono.Cecil/ModuleDefinition.cs:1167 在 Mono.Cecil.ModuleDefinition.ReadModule(System.String 文件名,Mono.Cecil.ReaderParameters 参数)[0x00078] 在 /Users/builder/data/lanes/6090/86d33f45/源/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/ModuleDefinition.cs:1139 在 Mono.Cecil.AssemblyDefinition.ReadAssembly(System.String 文件名,Mono.Cecil.ReaderParameters 参数)[0x00001 ] 在 /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/AssemblyDefinition.cs:134 在 Java.Interop.Tools.Cecil .DirectoryAssemblyResolver.ReadAssembly(系统。字符串文件)[0x00123] 在 /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 在 /Users/builder/data/lanes/6090/86d33f45/source 中的 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Load(System.String 文件名,System.Boolean forceLoad)[0x00029] /monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:136 ---内部异常堆栈跟踪结束---在 /Users/builder/data/lanes/6090/ 中的 Java.Interop.Tools.Diagnostics.Diagnostic.Error(System.Int32 代码,System.Exception innerException,System.String 消息,System.Object[] args)[0x00000] 86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop。Tools.Diagnostics/Java.Interop.Tools.Diagnostics/Diagnostic.cs:165 在 Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Load (System.String fileName, System.Boolean forceLoad) [0x00034] 在 /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 在 Xamarin.Android .Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly(NuGet.ProjectModel.LockFile lockFile,Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器,System.String assemblyPath)[0x00151] 在:0 在 Xamarin.Android.Tasks.ResolveAssemblies.Execute(Java.Interop .Tools.Cecil.DirectoryAssemblyResolver 解析器)[0x001ac] 在:0在 /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop 中加载(System.String 文件名,System.Boolean forceLoad)[0x00034] .Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:138 在 Xamarin.Android.Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly (NuGet.ProjectModel.LockFile lockFile,Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器,System.String assemblyPath)[0x00151] 在:0 在 Xamarin.Android.Tasks.ResolveAssemblies.Execute(Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器)[0x001ac] 在:0在 /Users/builder/data/lanes/6090/86d33f45/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop 中加载(System.String 文件名,System.Boolean forceLoad)[0x00034] .Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:138 在 Xamarin.Android.Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly (NuGet.ProjectModel.LockFile lockFile,Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器,System.String assemblyPath)[0x00151] 在:0 在 Xamarin.Android.Tasks.ResolveAssemblies.Execute(Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器)[0x001ac] 在:0Cecil/DirectoryAssemblyResolver.cs:138 在 Xamarin.Android.Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly (NuGet.ProjectModel.LockFile lockFile,Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器,System.String assemblyPath)[0x00151] 在 Xamarin:0。 Android.Tasks.ResolveAssemblies.Execute(Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器)[0x001ac] 在:0Cecil/DirectoryAssemblyResolver.cs:138 在 Xamarin.Android.Tasks.ResolveAssemblies.ResolveRuntimeAssemblyForReferenceAssembly (NuGet.ProjectModel.LockFile lockFile,Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器,System.String assemblyPath)[0x00151] 在 Xamarin:0。 Android.Tasks.ResolveAssemblies.Execute(Java.Interop.Tools.Cecil.DirectoryAssemblyResolver 解析器)[0x001ac] 在:0

4

0 回答 0