修复 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)
{
CheckSettings(builder.CoreSettingsFacade);
_coreSettings = builder.CoreSettingsFacade;
_allObfuscationRelativeAssemblyNames = _coreSettings.assembliesToObfuscate
.Concat(_coreSettings.nonObfuscatedButReferencingObfuscatedAssemblies)
.ToList();
@ -59,6 +61,33 @@ namespace Obfuz
_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()
{
Debug.Log($"Obfuscator Run. begin");