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

时间:2019-06-14 23:25:57

标签: serialization uwp windows-store-apps xmlserializer hockeyapp

当我将我的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是否以某种方式修改了.appx包中的.appxupload,但没有修改.appxbundle?还有其他事情吗?

2 个答案:

答案 0 :(得分:1)

回答我自己的问题:

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

我联系了support@hockeyapp.net,并迅速收到以下答复(非常感谢HockeyApp支持):

  

嗨,格雷格,感谢您的联系!

     

如文档How to sideload UWP applications所示   似乎我们仅支持.appxbundle文件,因此请上传   .appxbundle文件而不是.appxupload。

答案 1 :(得分:0)

AppxUpload软件包仅用于商店提取管道,我不希望它们正常运行。我没有完整的清单,但是它们是我们为您的应用程序正确进行安全修补所需的工件集,并不意味着它是执行的容器。