8.2版本上传

This commit is contained in:
2025-06-12 18:00:06 +08:00
parent a10df85379
commit 6a881f2e8a
263 changed files with 9063 additions and 1338 deletions

View File

@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using dnlib.DotNet;
using HybridCLR.Editor.Meta;
using UnityEditor;
using UnityEngine;
using IAssemblyResolver = HybridCLR.Editor.Meta.IAssemblyResolver;
namespace HybridCLR.Editor.Link
@@ -22,26 +23,27 @@ namespace HybridCLR.Editor.Link
public HashSet<TypeRef> CollectRefs(List<string> rootAssemblies)
{
using (var assCollector = new AssemblyCache(_resolver))
{
var rootAssemblyNames = new HashSet<string>(rootAssemblies);
var assCollector = new AssemblyCache(_resolver);
var rootAssemblyNames = new HashSet<string>(rootAssemblies);
var typeRefs = new HashSet<TypeRef>(TypeEqualityComparer.Instance);
foreach (var rootAss in rootAssemblies)
var typeRefs = new HashSet<TypeRef>(TypeEqualityComparer.Instance);
foreach (var rootAss in rootAssemblies)
{
var dnAss = assCollector.LoadModule(rootAss, false);
foreach (var type in dnAss.GetTypeRefs())
{
var dnAss = assCollector.LoadModule(rootAss, false);
foreach (var type in dnAss.GetTypeRefs())
if (type.DefinitionAssembly == null)
{
if (!rootAssemblyNames.Contains(type.DefinitionAssembly.Name.ToString()))
{
typeRefs.Add(type);
}
Debug.LogWarning($"assembly:{dnAss.Name} TypeRef {type.FullName} has no DefinitionAssembly");
continue;
}
if (!rootAssemblyNames.Contains(type.DefinitionAssembly.Name.ToString()))
{
typeRefs.Add(type);
}
}
assCollector.Dispose();
return typeRefs;
}
return typeRefs;
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 966868d081b9f044380d7ce9308231d8
guid: fd3dd4871efd10e46947cb61c13797fd
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace HybridCLR.Editor.Link
{
internal class LinkXmlWriter
public class LinkXmlWriter
{
public void Write(string outputLinkXmlFile, HashSet<TypeRef> refTypes)
{
@@ -32,6 +32,12 @@ namespace HybridCLR.Editor.Link
assTypeNames.Sort(string.CompareOrdinal);
foreach(var typeName in assTypeNames)
{
#if UNITY_2023_1_OR_NEWER
if (typeName == "UnityEngine.Debug")
{
continue;
}
#endif
writer.WriteStartElement("type");
writer.WriteAttributeString("fullname", typeName);
writer.WriteAttributeString("preserve", "all");

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 06c46ecd48495b146b7863a70fd99208
guid: d5cc4ae4adc319b4bb1e115567d7613e
MonoImporter:
externalObjects: {}
serializedVersion: 2