Исключение сериализации при загрузке .appxupload вместо .appxbundle в HockeyApp

Когда я загружаю .appxbundle своего приложения UWP в HockeyApp, все работает нормально. Когда я вместо этого загружаю файл .appxupload, я получаю сообщение об ошибке сериализации при запуске приложения и пытаюсь сериализовать классы с атрибутом [DataContract].

Я получаю следующее исключение (на некоторых машинах, а не на всех):

Value cannot be null.
Parameter name: format
   at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.SR.Format(String resourceFormat, Object p1)
   at System.Runtime.Serialization.DataContract.GetDataContractFromGeneratedAssembly(Type type)
   at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32 id, RuntimeTypeHandle typeHandle, Type type)
   at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32 id, RuntimeTypeHandle typeHandle, Type type)
   at System.Runtime.Serialization.DataContract.GetDataContract(RuntimeTypeHandle typeHandle, Type type, SerializationMode mode)
   at System.Runtime.Serialization.DataContractSerializer.get_RootContract()
   at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
   at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
   at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph)
   at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(Stream stream, Object graph)
   at VungleSDK.DbTable_1`1.Serialize(T obj)

Если я загружу файл .appxupload в Магазин Windows, проблем не возникнет.

У меня вопрос, почему это происходит? HockeyApp каким-то образом изменяет пакеты .appx для .appxupload, но не для .appxbundle? Что-то еще происходит?


person Greg Thatcher    schedule 14.06.2019    source источник
comment
Есть ли причина, по которой вы не можете использовать пакет в этих сценариях?   -  person MattWhilden    schedule 17.06.2019
comment
Нет никаких причин, по которым я не могу использовать .appxbundle. Проблема в том, как кто-то узнает, когда им следует использовать .appxbundle, а когда - .appxupload? Если HockeyApp не работает правильно с файлами .appxupload, можно подумать, что их пользовательский интерфейс не позволит загружать их.   -  person Greg Thatcher    schedule 17.06.2019
comment
Совершенно справедливо, и я думаю, что было бы полезно предоставить проверку и достойное сообщение об ошибке для файлов .appxupload! :-)   -  person MattWhilden    schedule 19.06.2019


Ответы (2)


Отвечая на свой вопрос:

Хотя HockeyApp позволяет загружать файлы .appxupload (как вы можете для Магазина Windows), вы не должны этого делать. Вместо этого всегда загружайте файл .appxbundle.

Я связался с [email protected] и быстро получил следующий ответ (большое спасибо, поддержка HockeyApp):

Привет, Грег, спасибо, что связались!

В виде документа Как загружать приложения UWP указывает здесь, что кажется, что мы поддерживаем только файл .appxbundle, поэтому загрузите файл .appxbundle вместо .appxupload.

person Greg Thatcher    schedule 17.06.2019

Пакеты AppxUpload предназначены только для конвейера загрузки в Магазин, и я бы не ожидал, что они будут работать должным образом. У меня нет полного изложения, но это набор артефактов, которые нам нужны для правильного исправления безопасности вашего приложения и не предназначены для использования в качестве контейнера для выполнения.

person MattWhilden    schedule 17.06.2019