我正在尝试构建一个 Xamarin Android 项目。该项目在 Windows 上使用 Visual Studio 构建得非常好,但我试图获得完全相同的代码库以使用Visual Studio for Mac 编译并不断收到以下错误。
Windows 上的 Visual Studio 必须自动执行绑定重定向。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2): Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'KellermanSoftware.Compare-NET-Objects-Portable, Version=3.8.0.0, Culture=neutral, PublicKeyToken=d970ace04cc85217'. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'KellermanSoftware.Compare-NET-Objects-Portable.dll'
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference, Mono.Cecil.ReaderParameters parameters) [0x00099] in /Users/builder/data/lanes/5809/a7829590/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:229
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference) [0x00000] in /Users/builder/data/lanes/5809/a7829590/source/monodroid/external/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:179
at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver, System.Collections.Generic.ICollection`1[T] assemblies, Mono.Cecil.AssemblyDefinition assembly, System.Boolean topLevel) [0x0015c] in <bae064cadfb64dccb729d7cb7dab7861>:0
at Xamarin.Android.Tasks.ResolveAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver resolver) [0x001c7] in <bae064cadfb64dccb729d7cb7dab7861>:0 (MyProject.Droid)
我目前有通过 NuGet 安装的版本,这是我想要的版本3.2.0.0
。Compare-NET-Objects
即使在搜索了整个代码库之后,它仍然需要版本3.8.0.0
,但它在任何文件的任何地方都不存在。
这是packages.config 中的条目:
<package id="Compare-NET-Objects" version="3.02.0.0" targetFramework="monoandroid81" />
我还尝试为版本 0.0.0.0-4.52.0.0 添加程序集绑定重定向以在app.config中使用版本 3.02.0.0,但它也没有帮助。
我的其他包或项目有一段时间没有更新,但我注意到 targetFramework="monoandroid60" 曾经是 packages.config 中目标框架的值,并且将其更改回该值也无济于事。