[fix] 修复 Il2CppDefGeneratorCommand 中生成 PlaceHolder Assembly列表时未包含 preserveHotUpdateAssemblies的bug
parent
6834a17968
commit
5a50778821
|
@ -24,8 +24,8 @@ namespace HybridCLR.Editor.BuildProcessors
|
|||
Debug.Log($"[FilterHotFixAssemblies] disabled");
|
||||
return assemblies;
|
||||
}
|
||||
List<string> allHotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNames;
|
||||
List<string> allHotupdateDllFiles = SettingsUtil.HotUpdateAssemblyFiles;
|
||||
List<string> allHotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||
List<string> allHotupdateDllFiles = SettingsUtil.HotUpdateAssemblyFilesExcludePreserved;
|
||||
|
||||
// 检查是否重复填写
|
||||
var hotUpdateDllSet = new HashSet<string>();
|
||||
|
|
|
@ -92,7 +92,7 @@ namespace HybridCLR.Editor.BuildProcessors
|
|||
{
|
||||
var patcher = new ScriptingAssembliesJsonPatcher();
|
||||
patcher.Load(file);
|
||||
patcher.AddScriptingAssemblies(SettingsUtil.PatchingHotUpdateAssemblyFiles);
|
||||
patcher.AddScriptingAssemblies(SettingsUtil.HotUpdateAssemblyFilesIncludePreserved);
|
||||
patcher.Save(file);
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ namespace HybridCLR.Editor.BuildProcessors
|
|||
{
|
||||
var binFile = new UnityBinFile();
|
||||
binFile.Load(binPath);
|
||||
binFile.AddScriptingAssemblies(SettingsUtil.PatchingHotUpdateAssemblyFiles);
|
||||
binFile.AddScriptingAssemblies(SettingsUtil.HotUpdateAssemblyFilesIncludePreserved);
|
||||
binFile.Save(binPath);
|
||||
Debug.Log($"[PatchScriptingAssemblyList] patch {binPath}");
|
||||
}
|
||||
|
@ -142,7 +142,7 @@ namespace HybridCLR.Editor.BuildProcessors
|
|||
foreach (string binPath in binFiles)
|
||||
{
|
||||
var patcher = new Dataunity3dPatcher();
|
||||
patcher.ApplyPatch(binPath, SettingsUtil.PatchingHotUpdateAssemblyFiles);
|
||||
patcher.ApplyPatch(binPath, SettingsUtil.HotUpdateAssemblyFilesIncludePreserved);
|
||||
Debug.Log($"[PatchScriptingAssemblyList] patch {binPath}");
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace HybridCLR.Editor.Commands
|
|||
public static void GenerateAOTGenericReference(BuildTarget target)
|
||||
{
|
||||
var gs = SettingsUtil.HybridCLRSettings;
|
||||
List<string> hotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNames;
|
||||
List<string> hotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||
|
||||
using (AssemblyReferenceDeepCollector collector = new AssemblyReferenceDeepCollector(MetaUtil.CreateHotUpdateAndAOTAssemblyResolver(target, hotUpdateDllNames), hotUpdateDllNames))
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace HybridCLR.Editor.Commands
|
|||
var options = new Il2CppDef.Il2CppDefGenerator.Options()
|
||||
{
|
||||
UnityVersion = Application.unityVersion,
|
||||
HotUpdateAssemblies = SettingsUtil.HotUpdateAssemblyNames,
|
||||
HotUpdateAssemblies = SettingsUtil.HotUpdateAssemblyNamesIncludePreserved,
|
||||
OutputFile = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/il2cpp-config.h",
|
||||
OutputFile2 = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/Il2CppCompatibleDef.cpp",
|
||||
};
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace HybridCLR.Editor.Commands
|
|||
{
|
||||
var ls = SettingsUtil.HybridCLRSettings;
|
||||
|
||||
List<string> hotfixAssemblies = SettingsUtil.HotUpdateAssemblyNames;
|
||||
List<string> hotfixAssemblies = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||
|
||||
var analyzer = new Analyzer(MetaUtil.CreateHotUpdateAndAOTAssemblyResolver(target, hotfixAssemblies), HybridCLRSettings.Instance.collectAssetReferenceTypes);
|
||||
var refTypes = analyzer.CollectRefs(hotfixAssemblies);
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace HybridCLR.Editor.Commands
|
|||
|
||||
public static void GenerateMethodBridge(BuildTarget target)
|
||||
{
|
||||
List<string> hotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNames;
|
||||
List<string> hotUpdateDllNames = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||
using (AssemblyReferenceDeepCollector collector = new AssemblyReferenceDeepCollector(MetaUtil.CreateHotUpdateAndAOTAssemblyResolver(target, hotUpdateDllNames), hotUpdateDllNames))
|
||||
{
|
||||
var analyzer = new Analyzer(new Analyzer.Options
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace HybridCLR.Editor.Commands
|
|||
|
||||
public static void GenerateReversePInvokeWrapper(BuildTarget target)
|
||||
{
|
||||
List<string> hotUpdateDlls = SettingsUtil.HotUpdateAssemblyNames;
|
||||
List<string> hotUpdateDlls = SettingsUtil.HotUpdateAssemblyNamesExcludePreserved;
|
||||
using (var cache = new AssemblyCache(MetaUtil.CreateHotUpdateAndAOTAssemblyResolver(target, hotUpdateDlls)))
|
||||
{
|
||||
var analyzer = new ReversePInvokeWrap.Analyzer(cache, hotUpdateDlls);
|
||||
|
|
|
@ -65,9 +65,9 @@ namespace HybridCLR.Editor
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// 所有热更新dll列表。放到此列表中的dll在打包时OnFilterAssemblies回调中被过滤。
|
||||
/// 热更新dll列表。不包含 preserveHotUpdateAssemblies。
|
||||
/// </summary>
|
||||
public static List<string> HotUpdateAssemblyNames
|
||||
public static List<string> HotUpdateAssemblyNamesExcludePreserved
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -84,31 +84,35 @@ namespace HybridCLR.Editor
|
|||
}
|
||||
}
|
||||
|
||||
public static List<string> HotUpdateAssemblyFiles => HotUpdateAssemblyNames.Select(dll => dll + ".dll").ToList();
|
||||
public static List<string> HotUpdateAssemblyFilesExcludePreserved => HotUpdateAssemblyNamesExcludePreserved.Select(dll => dll + ".dll").ToList();
|
||||
|
||||
public static List<string> PatchingHotUpdateAssemblyFiles
|
||||
|
||||
public static List<string> HotUpdateAssemblyNamesIncludePreserved
|
||||
{
|
||||
get
|
||||
{
|
||||
List<string> patchingList = HotUpdateAssemblyFiles;
|
||||
List<string> allAsses = HotUpdateAssemblyNamesExcludePreserved;
|
||||
string[] preserveAssemblyNames = HybridCLRSettings.Instance.preserveHotUpdateAssemblies;
|
||||
if (preserveAssemblyNames != null && preserveAssemblyNames.Length > 0)
|
||||
{
|
||||
foreach(var assemblyName in preserveAssemblyNames)
|
||||
foreach (var assemblyName in preserveAssemblyNames)
|
||||
{
|
||||
string dllFileName = assemblyName + ".dll";
|
||||
if (patchingList.Contains(dllFileName))
|
||||
if (allAsses.Contains(assemblyName))
|
||||
{
|
||||
throw new Exception($"[PatchingHotUpdateAssemblyFiles] assembly:'{assemblyName}' 重复");
|
||||
throw new Exception($"[HotUpdateAssemblyNamesIncludePreserved] assembly:'{assemblyName}' 重复");
|
||||
}
|
||||
patchingList.Add(dllFileName);
|
||||
allAsses.Add(assemblyName);
|
||||
}
|
||||
}
|
||||
|
||||
return patchingList;
|
||||
return allAsses;
|
||||
}
|
||||
}
|
||||
|
||||
public static List<string> HotUpdateAssemblyFilesIncludePreserved => HotUpdateAssemblyNamesIncludePreserved.Select(ass => ass + ".dll").ToList();
|
||||
|
||||
public static List<string> AOTAssemblyNames => HybridCLRSettings.Instance.patchAOTAssemblies.ToList();
|
||||
|
||||
public static HybridCLRSettings HybridCLRSettings => HybridCLRSettings.Instance;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "com.focus-creative-games.hybridclr_unity",
|
||||
"version": "1.1.17",
|
||||
"version": "1.1.18",
|
||||
"displayName": "HybridCLR",
|
||||
"description": "Unity package for HybridCLR. It includes editor and runtime scripts and assets for HybridCLR",
|
||||
"category": "Runtime",
|
||||
|
|
Loading…
Reference in New Issue