Custom tasks from updated assemblies cannot be deserialized
Let's say that I have MyUpdateTask bundled within MySuperApp.exe, v.0.1. As soon as I release new version of this assembly, updater starts failing as it loads only new version of assembly into AppDomain and not the old one.
System.Runtime.Serialization.SerializationException: Unable to find assembly 'MySuperApp, Version=0.1, Culture=neutral, PublicKeyToken=null'.
at System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage)
at NAppUpdate.Framework.Utils.NauIpc.ReadDto(String syncProcessName)
at NAppUpdate.Updater.AppStart.Main()
Sorry for not responding earlier - stupid GitHub notifications
This can probably be solved by having your custom Task in a separate DLL?
@synhershko yeah, this can be done, but it is just a workaround
What do you propose?
Use less strict serialization format (JSON?) as this problem will appear for newer versions of NAppUpdate as well, as soon as you change assembly version
This makes sense, yes. Could you provide a Pull Request for that?