[new] Generate支持 netstandard
parent
f51c2803c1
commit
d9ed27abfb
Binary file not shown.
Binary file not shown.
|
@ -15,6 +15,7 @@ namespace HybridCLR.Editor.Meta
|
||||||
private readonly ModuleContext _modCtx;
|
private readonly ModuleContext _modCtx;
|
||||||
private readonly AssemblyResolver _asmResolver;
|
private readonly AssemblyResolver _asmResolver;
|
||||||
private bool disposedValue;
|
private bool disposedValue;
|
||||||
|
private bool _loadedNetstandard;
|
||||||
|
|
||||||
public Dictionary<string, ModuleDefMD> LoadedModules { get; } = new Dictionary<string, ModuleDefMD>();
|
public Dictionary<string, ModuleDefMD> LoadedModules { get; } = new Dictionary<string, ModuleDefMD>();
|
||||||
|
|
||||||
|
@ -34,6 +35,15 @@ namespace HybridCLR.Editor.Meta
|
||||||
{
|
{
|
||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
if (moduleName == "netstandard")
|
||||||
|
{
|
||||||
|
if (!_loadedNetstandard)
|
||||||
|
{
|
||||||
|
LoadNetStandard();
|
||||||
|
_loadedNetstandard = true;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
mod = DoLoadModule(_assemblyPathResolver.ResolveAssembly(moduleName, true));
|
mod = DoLoadModule(_assemblyPathResolver.ResolveAssembly(moduleName, true));
|
||||||
LoadedModules.Add(moduleName, mod);
|
LoadedModules.Add(moduleName, mod);
|
||||||
|
|
||||||
|
@ -48,6 +58,12 @@ namespace HybridCLR.Editor.Meta
|
||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LoadNetStandard()
|
||||||
|
{
|
||||||
|
LoadModule("netstandard2.0", false);
|
||||||
|
LoadModule("netstandard2.1", false);
|
||||||
|
}
|
||||||
|
|
||||||
private ModuleDefMD DoLoadModule(string dllPath)
|
private ModuleDefMD DoLoadModule(string dllPath)
|
||||||
{
|
{
|
||||||
//Debug.Log($"do load module:{dllPath}");
|
//Debug.Log($"do load module:{dllPath}");
|
||||||
|
|
|
@ -17,6 +17,7 @@ namespace HybridCLR.Editor.Meta
|
||||||
private readonly ModuleContext _modCtx;
|
private readonly ModuleContext _modCtx;
|
||||||
private readonly AssemblyResolver _asmResolver;
|
private readonly AssemblyResolver _asmResolver;
|
||||||
private bool disposedValue;
|
private bool disposedValue;
|
||||||
|
private bool _loadedNetstandard;
|
||||||
|
|
||||||
public Dictionary<string, ModuleDefMD> LoadedModules { get; } = new Dictionary<string, ModuleDefMD>();
|
public Dictionary<string, ModuleDefMD> LoadedModules { get; } = new Dictionary<string, ModuleDefMD>();
|
||||||
|
|
||||||
|
@ -66,6 +67,15 @@ namespace HybridCLR.Editor.Meta
|
||||||
{
|
{
|
||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
if (moduleName == "netstandard")
|
||||||
|
{
|
||||||
|
if (!_loadedNetstandard)
|
||||||
|
{
|
||||||
|
LoadNetStandard();
|
||||||
|
_loadedNetstandard = true;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
mod = DoLoadModule(_assemblyPathResolver.ResolveAssembly(moduleName, true));
|
mod = DoLoadModule(_assemblyPathResolver.ResolveAssembly(moduleName, true));
|
||||||
LoadedModules.Add(moduleName, mod);
|
LoadedModules.Add(moduleName, mod);
|
||||||
|
|
||||||
|
@ -84,6 +94,12 @@ namespace HybridCLR.Editor.Meta
|
||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LoadNetStandard()
|
||||||
|
{
|
||||||
|
DoLoadModule(_assemblyPathResolver.ResolveAssembly("netstandard2.0", true));
|
||||||
|
DoLoadModule(_assemblyPathResolver.ResolveAssembly("netstandard2.1", true));
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual void Dispose(bool disposing)
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (!disposedValue)
|
if (!disposedValue)
|
||||||
|
|
|
@ -170,7 +170,8 @@ namespace HybridCLR.Editor.Meta
|
||||||
{
|
{
|
||||||
return new CombinedAssemblyResolver(
|
return new CombinedAssemblyResolver(
|
||||||
CreateHotUpdateAssemblyResolver(target, hotUpdateDlls),
|
CreateHotUpdateAssemblyResolver(target, hotUpdateDlls),
|
||||||
CreateAOTAssemblyResolver(target)
|
CreateAOTAssemblyResolver(target),
|
||||||
|
new PathAssemblyResolver($"{SettingsUtil.HybridCLRDataPathInPackage}/NetStandard")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,9 +33,9 @@ namespace HybridCLR.Editor.ReversePInvokeWrap
|
||||||
|
|
||||||
public Analyzer(AssemblyCache cache, List<string> assemblyNames)
|
public Analyzer(AssemblyCache cache, List<string> assemblyNames)
|
||||||
{
|
{
|
||||||
foreach(var assemblyName in assemblyNames)
|
foreach (var assemblyName in assemblyNames)
|
||||||
{
|
{
|
||||||
_rootModules.Add(cache.LoadModule(assemblyName, false));
|
_rootModules.Add(cache.LoadModule(assemblyName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue