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" />
また、app.config でバージョン 3.02.0.0 を使用するために、バージョン 0.0.0.0-4.52.0.0 のアセンブリ バインディング リダイレクトを追加しようとしましたが、どちらも役に立ちませんでした。
私の他のパッケージやプロジェクトはしばらく更新されていませんが、targetFramework="monoandroid60" がpackages.configのターゲットフレームワークの値であったことに気付き、その値に戻しても役に立ちませんでした。