mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Patch all exes in current folder
This commit is contained in:
1 parent
8393cec211
commit
e40c87137f
1 file changed
+29
-27
+29
-27
@@ -18,37 +18,39 @@ namespace BepInEx.Patcher
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string managedDir = Environment.CurrentDirectory + @"\KoikatuTrial_Data\Managed";
|
||||
if (!Directory.Exists(managedDir))
|
||||
Error($"\"{managedDir}\" not found.");
|
||||
|
||||
string unityOutputDLL = Path.GetFullPath($"{managedDir}\\UnityEngine.dll");
|
||||
if (!File.Exists(unityOutputDLL))
|
||||
Error("\"UnityEngine.dll\" not found.");
|
||||
|
||||
string unityOriginalDLL = Path.GetFullPath($"{managedDir}\\UnityEngine.dll.bak");
|
||||
if (!File.Exists(unityOriginalDLL))
|
||||
File.Copy(unityOutputDLL, unityOriginalDLL);
|
||||
|
||||
string harmony = Path.GetFullPath($"{managedDir}\\0Harmony.dll");
|
||||
File.WriteAllBytes(harmony, Resources._0Harmony);
|
||||
|
||||
string injectedDLL = Path.GetFullPath($"{managedDir}\\BepInEx.dll");
|
||||
File.WriteAllBytes(injectedDLL, Resources.BepInEx);
|
||||
|
||||
var defaultResolver = new DefaultAssemblyResolver();
|
||||
defaultResolver.AddSearchDirectory(managedDir);
|
||||
var rp = new ReaderParameters
|
||||
foreach (string exePath in Directory.GetFiles(Directory.GetCurrentDirectory()))
|
||||
{
|
||||
AssemblyResolver = defaultResolver
|
||||
};
|
||||
|
||||
AssemblyDefinition unity = AssemblyDefinition.ReadAssembly(unityOriginalDLL, rp);
|
||||
AssemblyDefinition injected = AssemblyDefinition.ReadAssembly(injectedDLL, rp);
|
||||
string managedDir = Environment.CurrentDirectory + $@"\{Path.GetFileNameWithoutExtension(exePath)}_Data\Managed";
|
||||
string unityOutputDLL = Path.GetFullPath($"{managedDir}\\UnityEngine.dll");
|
||||
|
||||
InjectAssembly(unity, injected);
|
||||
if (!Directory.Exists(managedDir) || !File.Exists(unityOutputDLL))
|
||||
continue;
|
||||
|
||||
string unityOriginalDLL = Path.GetFullPath($"{managedDir}\\UnityEngine.dll.bak");
|
||||
if (!File.Exists(unityOriginalDLL))
|
||||
File.Copy(unityOutputDLL, unityOriginalDLL);
|
||||
|
||||
string harmony = Path.GetFullPath($"{managedDir}\\0Harmony.dll");
|
||||
File.WriteAllBytes(harmony, Resources._0Harmony);
|
||||
|
||||
string injectedDLL = Path.GetFullPath($"{managedDir}\\BepInEx.dll");
|
||||
File.WriteAllBytes(injectedDLL, Resources.BepInEx);
|
||||
|
||||
var defaultResolver = new DefaultAssemblyResolver();
|
||||
defaultResolver.AddSearchDirectory(managedDir);
|
||||
var rp = new ReaderParameters
|
||||
{
|
||||
AssemblyResolver = defaultResolver
|
||||
};
|
||||
|
||||
AssemblyDefinition unity = AssemblyDefinition.ReadAssembly(unityOriginalDLL, rp);
|
||||
AssemblyDefinition injected = AssemblyDefinition.ReadAssembly(injectedDLL, rp);
|
||||
|
||||
InjectAssembly(unity, injected);
|
||||
|
||||
unity.Write(unityOutputDLL);
|
||||
unity.Write(unityOutputDLL);
|
||||
}
|
||||
}
|
||||
|
||||
static void InjectAssembly(AssemblyDefinition unity, AssemblyDefinition injected)
|
||||
|
||||
Reference in new issue
Block a user