老师,您好,请教下,使用Unity2019版本,HotFix热更工程生成dll,pdb;改HotFix.dll.txt;HotFix.pdb.txt改后缀;打包;运行用底层资源加载TextAsset ...
老师,您好,请教下,使用Unity2019版本,HotFix热更工程生成dll,pdb;改HotFix.dll.txt;HotFix.pdb.txt改后缀;打包;运行用底层资源加载TextAsset dllText = ResourceManager.Instance.LoadResource(DLLPATH);
//PBD文件,调试数据,可查看日志报错
TextAsset pbdText = ResourceManager.Instance.LoadResource(PDBPPATH);
using (MemoryStream ms = new MemoryStream(dllText.bytes))
{
using (MemoryStream p = new MemoryStream(pbdText.bytes))
{
m_AppDomain.LoadAssembly(ms, p, new ILRuntime.Mono.Cecil.Pdb.PdbReaderProvider());
}
}
运行到m_AppDomain.LoadAssembly(ms, p, new ILRuntime.Mono.Cecil.Pdb.PdbReaderProvider());会报dll是无效的;报错日志
BadImageFormatException: Format of the executable (.exe) or library (.dll) is invalid.
ILRuntime.Mono.Cecil.PE.ImageReader.ReadImage () (at F:/SVN/ILRuntime/Mono.Cecil/Mono.Cecil.PE/ImageReader.cs:64)
ILRuntime.Mono.Cecil.PE.ImageReader.ReadImage (ILRuntime.Mono.Disposable`1[T] stream, System.String file_name) (at F:/SVN/ILRuntime/Mono.Cecil/Mono.Cecil.PE/ImageReader.cs:763)
ILRuntime.Mono.Cecil.ModuleDefinition.ReadModule (ILRuntime.Mono.Disposable`1[T] stream, System.String fileName, ILRuntime.Mono.Cecil.ReaderParameters parameters) (at F:/SVN/ILRuntime/Mono.Cecil/Mono.Cecil/ModuleDefinition.cs:1125)
ILRuntime.Mono.Cecil.ModuleDefinition.ReadModule (System.IO.Stream stream, ILRuntime.Mono.Cecil.ReaderParameters parameters) (at F:/SVN/ILRuntime/Mono.Cecil/Mono.Cecil/ModuleDefinition.cs:1118)
ILRuntime.Mono.Cecil.ModuleDefinition.ReadModule (System.IO.Stream stream) (at F:/SVN/ILRuntime/Mono.Cecil/Mono.Cecil/ModuleDefinition.cs:1110)
ILRuntime.Runtime.Enviorment.AppDomain.LoadAssembly (System.IO.Stream stream, System.IO.Stream symbol, ILRuntime.Mono.Cecil.Cil.ISymbolReaderProvider symbolReader) (at Library/PackageCache/com.ourpalm.ilruntime@2.1.0/Runtime/Enviorment/AppDomain.cs:577)
ILRuntimeManager.LoadHotFixAssembly () (at Assets/Scripts/ILRuntimeManager.cs:38)
ILRuntimeManager.Init () (at Assets/Scripts/ILRuntimeManager.cs:23)
GameStart+d__5.MoveNext () (at Assets/RealFram/FramePlug/GameStart.cs:88)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at :0);生成的dll是没有问题的,用ILRuntimeDemo里的方法加载WWW("file:///" + Application.streamingAssetsPath + "/HotFix.dll")可以正常读取,也可以正常的反射打出日志,可以怎么解决?