Не удалось загрузить файл или сборку 'System.Private.CoreLib ...' - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть приложение Xamarin.Forms, которое предназначено для стандарта .net 1.4.В приложении UWP с минимальной версией 14393 (и целевыми 16299) я получаю следующее исключение из Магазина Microsoft (хотя на моем компьютере оно работает нормально даже из файла appxbundle):

Примечаниеосновные моменты:

  1. Ошибка возникает на Xamarin.Forms.Forms.Init(e); в OnLaunched.
  2. Сама ошибка Could not load file or assembly 'System.Private.CoreLib...'.

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' или одна из ее зависимостей.Система не может найти указанный файл.Имя файла: 'System.Private.CoreLib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' в System.ModuleHandle.ResolveType (модуль RuntimeModule, Int32 typeToken, IntPtr * typeInstArgs, метод IntInstount, метод IntInstCount типа IntInstCount), Тип ObjectHandleOnStack) в System.ModuleHandle.ResolveTypeHandleInternal (модуль RuntimeModule, тип IntToken Int32, RuntimeTypeHandle [] typeInstantiationContext, RuntimeTypeHandle [] methodInstantiationContext)System.Reflection.CustomAttribute.FilterCustomAttributeRecord (CustomAttributeRecord caRecord, MetadataImport сфера, сборка и lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, булева mustBeInheritable, Object [] атрибуты, IList derivedAttributes, RuntimeType & AttributeType, IRuntimeMethodInfo & т е р, булевы & ctorHasParameters, Булева & isVarArg) при System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, булева mustBeInheritable, IList derivedAttributes, булева isDecoratedTargetSecurityTransparent) в System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeAssembly сборки, RuntimeType caType) вSystem.Reflection.RuntimeAssembly.GetCustomAttributes (Тип attributeType, логическое наследование) в System.Attribute.GetCustomAttributes (Элемент сборки, Тип attributeType, логическое наследование) в Xamarin.Forms.Internals.Registrar.RegisterAll (Type [) attrin.Forms.Init (IActivationEventArgs launchActivationEventArgs, IEnumerable`1 rendererAssemblies) в PasswordManager.UWP.App.d__1.MoveNext ()

Любые идеи, что это может означать, и как их решить?

Ответы [ 2 ]

0 голосов
/ 10 августа 2018

Когда я столкнулся с этой проблемой, она была решена довольно просто - избегать сериализации общих коллекций.Кажется, лучше всего конвертировать вашу коллекцию в типизированный массив с помощью ToArray () перед сериализацией.

0 голосов
/ 25 апреля 2018

Учитывая, что в вашем пакете есть компоненты UWP и Desktop, вам нужно будет использовать VS Packaging Project для создания файла .appxupload для отправки в Store.

Для получения дополнительной информации / примеров, посмотрите здесь:

https://stefanwick.com/2018/04/06/uwp-with-desktop-extension-part-1/

https://blogs.windows.com/buildingapps/2017/12/04/extend-desktop-application-windows-10-features-using-new-visual-studio-application-packaging-project/ (см. Пример № 3)

Магазин больше не принимает пакеты со смешанными двоичными файлами UWP и Desktop .NET, которые не были созданыс правильным проектом упаковки.Это необходимо для обеспечения того, чтобы двоичные файлы UWP получали надлежащую нативную компиляцию .NET в облаке (что не применимо к двоичным файлам настольных компьютеров .NET).В вашем случае произошло то, что собственная компиляция .NET была пропущена в Магазине, в результате чего был получен недопустимый пакет, поскольку объявленные зависимости не совпадают с содержимым пакета.Мы должны улучшить обнаружение ошибок здесь, чтобы мы сразу же уведомляли вас о том, что ваш пакет не подходит и требует дополнительной работы.

Если ваш Win32 EXE не встроен в VS, и вы просто хотите включитьдвоичный файл в вашем проекте UWP, вы все равно должны использовать проект Packaging.Убедитесь, что Win32 EXE попадает в подпапку пакета.Смотрите скриншот ниже для этого типа структуры проекта.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...