当我将 .appxupload 而不是 .appxbundle 上传到 HockeyApp 时出现序列化异常

Posted

技术标签:

【中文标题】当我将 .appxupload 而不是 .appxbundle 上传到 HockeyApp 时出现序列化异常【英文标题】:Serialization Exception when I upload .appxupload instead of .appxbundle to HockeyApp 【发布时间】:2019-10-29 13:27:51 【问题描述】:

当我将我的 UWP 应用程序的 .appxbundle 上传到 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 是否以某种方式修改了 .appxupload 的 .appx 包,而不是 .appxbundle?是不是有别的事情发生了?

【问题讨论】:

在这些情况下您不能使用捆绑包有什么原因吗? 没有任何理由我不能使用 .appxbundle。问题是,人们如何知道何时应该使用 .appxbundle,以及何时应该使用 .appxupload?如果 HockeyApp 没有对 .appxupload 文件做正确的事情,人们会认为他们的 UI 不允许上传它们。 完全公平,我认为为 .appxupload 文件提供检查和体面的错误消息会很有帮助! :-) 【参考方案1】:

回答我自己的问题:

虽然 HockeyApp 可以让您上传 .appxupload 文件(就像您可以在 Windows 应用商店中一样),但您不应该这样做。相反,请始终上传 .appxbundle 文件。

我联系了 support@hockeyapp.net,很快就收到了以下回复(非常感谢 HockeyApp 支持):

您好 Greg,感谢您与我们联系!

正如文件How to sideload UWP applications 在这里指出的那样 看来我们只支持 .appxbundle 文件,所以请上传 .appxbundle 文件而不是 .appxupload。

【讨论】:

【参考方案2】:

AppxUpload 包仅适用于 Store 摄取管道,我不希望它们正常工作。我没有完整的概要,但它们是我们需要正确地对您的应用程序进行安全修补所需的一组工件,而不是用于执行的容器。

【讨论】:

以上是关于当我将 .appxupload 而不是 .appxbundle 上传到 HockeyApp 时出现序列化异常的主要内容,如果未能解决你的问题,请参考以下文章

.appxbundle 正在生成而不是 .appxupload - uwp

Cordova Windows 应用程序未使用依赖项文件夹构建 appx

UWP Cordova - 创建 appxupload 构建后无法运行应用程序

VS2017 无法创建用于商店发布的无头物联网应用的 appxupload-package

为 Windows Phone 8.1 XAML 应用程序显示的奇怪版本

在密码字段中显示星号而不是无值