Обновление приложения Android до MvvmCross 6.4.1 приводит к сбою сборки в Visual Studio 2017

Как видно из названия, я занимаюсь обновлением зависимостей существующего проекта Xamarin.Android. Проект Android использует MvvmCross для большей части кроссплатформенного кода (мы также поддерживаем другие платформы). В рамках этого обновления мы переходим с MvvmCross 6.2.2 на 6.4.1.

Однако после обновления библиотек проект больше не собирается должным образом при сборке с помощью Visual Studio 2017. Сообщение об ошибке, которое я получаю, показано ниже. Пробовал чистить и восстанавливать безрезультатно. Проект собирается с помощью Visual Studio 2019, но ведет себя странно; это произошло еще до обновления наших зависимостей.

Любые предложения о возможных способах исправить это будут оценены. Заранее большое спасибо!

The "LinkAssemblies" task failed unexpectedly.
Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Could not resolve reference to 'System.Collections.Generic.Stack`1' (defined in assembly 'MvvmCross, Version=6.4.1.0, Culture=neutral, PublicKeyToken=null') with scope 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. When the scope is different from the defining assembly, it usually means that the type is forwarded. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Collections.Generic.Stack`1
   at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type)
   at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
   at Mono.Linker.Steps.MarkStep.Initialize()
   at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
   at Mono.Linker.Pipeline.Process(LinkContext context)
   at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
   at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
   --- End of inner exception stack trace ---
   at Java.Interop.Tools.Diagnostics.Diagnostic.Error(Int32 code, Exception innerException, String message, Object[] args)
   at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
   at Xamarin.Android.Tasks.LinkAssemblies.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() RadResponder.Mobile.UI.Droid            


person Curtis Cali    schedule 31.10.2019    source источник
comment
MvvmCross 6.4.1 создан с использованием VS2019, и мы не можем гарантировать, что он будет работать со старыми версиями VS. Если вы можете описать странное поведение, я думаю, что было бы лучше сосредоточиться и исправить.   -  person Cheesebaron    schedule 01.11.2019
comment
Достаточно справедливое замечание! Я сделал еще один пост с подробным описанием этой проблемы здесь: 1-after" title="listitems в mvxlistview несовместимо с элементами в mvvmcross 6 4 1 after"> stackoverflow.com/questions/58668270/ Пожалуйста, дайте мне знать, если вам нужна какая-либо другая дополнительная информация   -  person Curtis Cali    schedule 02.11.2019
comment
@Cheesebaron У меня возникла точно такая же проблема при сборке с VS2017 на сервере сборки. Есть ли у вас какие-либо идеи, есть ли обходные пути для этого? Или, может быть, вы можете дать какой-то контекст об этой ошибке?   -  person 3615    schedule 11.11.2019
comment
@CurtisCali Я также столкнулся с такой же проблемой. сборка не работает на vs2017. Обновление VS - единственный вариант, который у меня есть, или у вас есть какое-то другое решение?   -  person Gopal    schedule 23.07.2020


Ответы (1)


После обновления с MvvmCross 6.3.1 до MvvmCross 6.4.1 и использования VS 2017 у нас также есть ошибка simialr:

Необработанное исключение: System.TypeLoadException: не удалось разрешить тип с токеном 01000113 из typeref (ожидаемый член класса System.Collections.Generic.Stack1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack1: (null) произошел

Не удалось разрешить тип с токеном 01000113 из typeref (ожидаемый член класса System.Collections.Generic.Stack1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack1: (null)

  at MvvmCross.Platforms.Android.Binding.MvxAndroidBindingBuilder.InitializeContextStack () [0x00000] in D:\a\1\s\MvvmCross\Platforms\Android\Binding\MvxAndroidBindingBuilder.cs:273 
  at MvvmCross.Platforms.Android.Binding.MvxAndroidBindingBuilder.RegisterPlatformSpecificComponents () [0x0000c] in D:\a\1\s\MvvmCross\Platforms\Android\Binding\MvxAndroidBindingBuilder.cs:268 
  at MvvmCross.Binding.MvxCoreBindingBuilder.DoRegistration () [0x00048] in D:\a\1\s\MvvmCross\Binding\MvxCoreBindingBuilder.cs:36 
  at MvvmCross.Binding.MvxBindingBuilder.DoRegistration () [0x00000] in D:\a\1\s\MvvmCross\Binding\MvxBindingBuilder.cs:16 
  at MvvmCross.Platforms.Android.Binding.MvxAndroidBindingBuilder.DoRegistration () [0x00012] in D:\a\1\s\MvvmCross\Platforms\Android\Binding\MvxAndroidBindingBuilder.cs:32 
  at MvvmCross.Platforms.Android.Core.MvxAndroidSetup.InitializeBindingBuilder () [0x0000d] in D:\a\1\s\MvvmCross\Platforms\Android\Core\MvxAndroidSetup.cs:164 
  at MvvmCross.Platforms.Android.Core.MvxAndroidSetup.InitializeLastChance () [0x00006] in D:\a\1\s\MvvmCross\Platforms\Android\Core\MvxAndroidSetup.cs:151 
  at MvvmCross.Core.MvxSetup.InitializeSecondary () [0x0017a] in D:\a\1\s\MvvmCross\Core\MvxSetup.cs:132 
  at MvvmCross.Core.MvxSetupSingleton+<<StartSetupInitialization>b__13_0>d.MoveNext () [0x0001c] in D:\a\1\s\MvvmCross\Core\MvxSetupSingleton.cs:187 
--- End of stack trace from previous location where exception was thrown ---
  at MvvmCross.Core.MvxSetupSingleton.EnsureInitialized () [0x0006e] in D:\a\1\s\MvvmCross\Core\MvxSetupSingleton.cs:116 
  at MvvmCross.Platforms.Android.Views.MvxActivityViewExtensions.EnsureSetupInitialized (MvvmCross.Platforms.Android.Views.IMvxAndroidView androidView) [0x0001c] in D:\a\1\s\MvvmCross\Platforms\Android\Views\MvxActivityViewExtensions.cs:154 
  at MvvmCross.Platforms.Android.Views.MvxActivityViewExtensions.OnViewCreate (MvvmCross.Platforms.Android.Views.IMvxAndroidView androidView, Android.OS.Bundle bundle) [0x00014] in D:\a\1\s\MvvmCross\Platforms\Android\Views\MvxActivityViewExtensions.cs:39 
  at MvvmCross.Platforms.Android.Views.MvxActivityAdapter.EventSourceOnCreateCalled (System.Object sender, MvvmCross.Base.MvxValueEventArgs`1[T] eventArgs) [0x00000] in D:\a\1\s\MvvmCross\Platforms\Android\Views\MvxActivityAdapter.cs:76 
  at (wrapper delegate-invoke) System.EventHandler`1[MvvmCross.Base.MvxValueEventArgs`1[Android.OS.Bundle]].invoke_void_object_TEventArgs(object,MvvmCross.Base.MvxValueEventArgs`1<Android.OS.Bundle>)
  at MvvmCross.Base.MvxDelegateExtensions.Raise[T] (System.EventHandler`1[TEventArgs] eventHandler, System.Object sender, T value) [0x00000] in D:\a\1\s\MvvmCross\Base\MvxDelegateExtensions.cs:18 
  at MvvmCross.Droid.Support.V7.AppCompat.EventSource.MvxEventSourceAppCompatActivity.OnCreate (Android.OS.Bundle bundle) [0x00014] in D:\a\1\s\MvvmCross.Android.Support\V7.AppCompat\EventSource\MvxEventSourceAppCompatActivity.cs:33 
  at MvvmCross.Droid.Support.V7.AppCompat.MvxAppCompatActivity.OnCreate (Android.OS.Bundle bundle) [0x00000] in D:\a\1\s\MvvmCross.Android.Support\V7.AppCompat\MvxAppCompatActivity.cs:88 
  at ITG.Brix.Mobile.EOrder.Views.Activities.LoginActivity.OnCreate (Android.OS.Bundle bundle) [0x00002] in C:\Projects\Git\native-eorder\ITG.Brix.Mobile.EOrder\Views\Activities\LoginActivity.cs:25 
person Melnic Vadim    schedule 28.11.2019