2022-12-14 14:11:32 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace HybridCLR.Editor.Meta
|
|
|
|
|
{
|
|
|
|
|
public abstract class AssemblyResolverBase : IAssemblyResolver
|
|
|
|
|
{
|
|
|
|
|
public string ResolveAssembly(string assemblyName, bool throwExIfNotFind)
|
|
|
|
|
{
|
|
|
|
|
if (TryResolveAssembly(assemblyName, out string assemblyPath))
|
|
|
|
|
{
|
|
|
|
|
return assemblyPath;
|
|
|
|
|
}
|
|
|
|
|
if (throwExIfNotFind)
|
|
|
|
|
{
|
2023-04-23 12:20:56 +08:00
|
|
|
|
if (SettingsUtil.HotUpdateAssemblyNamesIncludePreserved.Contains(assemblyName))
|
|
|
|
|
{
|
|
|
|
|
throw new Exception($"resolve 热更新 dll:{assemblyName} 失败!请确保已经编译了热更新dll或者外部热更新路径中配置了正确的值。更多请参阅常见错误文档");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
throw new Exception($"resolve AOT dll:{assemblyName} 失败! 请确保主工程已经引用了该dll并且正确生成了裁剪后的AOT dll。更多请参阅常见错误文档");
|
|
|
|
|
}
|
2022-12-14 14:11:32 +08:00
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected abstract bool TryResolveAssembly(string assemblyName, out string assemblyPath);
|
|
|
|
|
}
|
|
|
|
|
}
|