修复 Obfuscator未检查AssembliesToObfuscate和nonObfuscatedButReferencingObfuscatedAssemblies列表存在空或者重复程序集名的问题

before-split
walon 2025-05-23 19:47:43 +08:00
parent 28e276eda5
commit 5de469c4a6
1 changed files with 29 additions and 0 deletions

View File

@ -35,7 +35,9 @@ namespace Obfuz
public Obfuscator(ObfuscatorBuilder builder) public Obfuscator(ObfuscatorBuilder builder)
{ {
CheckSettings(builder.CoreSettingsFacade);
_coreSettings = builder.CoreSettingsFacade; _coreSettings = builder.CoreSettingsFacade;
_allObfuscationRelativeAssemblyNames = _coreSettings.assembliesToObfuscate _allObfuscationRelativeAssemblyNames = _coreSettings.assembliesToObfuscate
.Concat(_coreSettings.nonObfuscatedButReferencingObfuscatedAssemblies) .Concat(_coreSettings.nonObfuscatedButReferencingObfuscatedAssemblies)
.ToList(); .ToList();
@ -59,6 +61,33 @@ namespace Obfuz
_pipeline2.AddPass(new RemoveObfuzAttributesPass()); _pipeline2.AddPass(new RemoveObfuzAttributesPass());
} }
private void CheckSettings(CoreSettingsFacade settings)
{
var totalAssemblies = new HashSet<string>();
foreach (var assName in settings.assembliesToObfuscate)
{
if (string.IsNullOrWhiteSpace(assName))
{
throw new Exception($"the name of some assembly in assembliesToObfuscate is empty! Please check your settings.");
}
if (!totalAssemblies.Add(assName))
{
throw new Exception($"the name of assembly `{assName}` in assembliesToObfuscate is duplicated! Please check your settings.");
}
}
foreach (var assName in settings.nonObfuscatedButReferencingObfuscatedAssemblies)
{
if (string.IsNullOrWhiteSpace(assName))
{
throw new Exception($"the name of some assembly in nonObfuscatedButReferencingObfuscatedAssemblies is empty! Please check your settings.");
}
if (!totalAssemblies.Add(assName))
{
throw new Exception($"the name of assembly `{assName}` in nonObfuscatedButReferencingObfuscatedAssemblies is duplicated! Please check your settings.");
}
}
}
public void Run() public void Run()
{ {
Debug.Log($"Obfuscator Run. begin"); Debug.Log($"Obfuscator Run. begin");