- Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathProgram.cs
More file actions
Latest commit
76 lines (71 loc) · 2.91 KB
/
Copy pathProgram.cs
File metadata and controls
76 lines (71 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Linq;
usingSystem.Reflection;
usingSystem.Security.Cryptography;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespaceSignToolsGUI
{
staticclassProgram
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
staticvoidMain()
{
//WriteResourceToFile("SignToolsGUI.System.Buffers.dll", "System.Buffers.dll");
//WriteResourceToFile("SignToolsGUI.UnityEngine.CoreModule.dll", "UnityEngine.CoreModule.dll");
//WriteResourceToFile("SignToolsGUI.UnityEngine.SharedInternalsModule.dll", "UnityEngine.SharedInternalsModule.dl");
//WriteResourceToFile("SignToolsGUI.LZ4pn.dll", "LZ4pn.dll");
//WriteResourceToFile("SignToolsGUI.LZ4.dll", "LZ4.dll");
//WriteResourceToFile("SignToolsGUI.Facepunch.System.exe", "Facepunch.System.exe");
//WriteResourceToFile("SignToolsGUI.Rust.Data.dll", "Rust.Data.dll");
//WriteResourceToFile("SignToolsGUI.Rust.World.dll", "Rust.World.dll");
AssemblyResolver.Register();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newGUI());
}
publicstaticvoidWriteResourceToFile(stringresourceName,stringfileName)
{
using(varresource=Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
using(varfile=newFileStream(fileName,FileMode.Create,FileAccess.Write))
{
resource.CopyTo(file);
}
}
}
}
}
internalclassAssemblyResolver
{
publicstaticvoidRegister()
{
AppDomain.CurrentDomain.AssemblyResolve+=
(sender,args)=>
{
varan=newAssemblyName(args.Name);
string[]dlls={"System.Buffers","UnityEngine.CoreModule","UnityEngine.SharedInternalsModule","LZ4pn","LZ4","Facepunch.System","Rust.Data","Rust.World"};
if(dlls.Contains(an.Name))
{
stringresourcepath="SignToolsGUI."+an.Name+".dll";
if(an.Name.Contains("Facepunch.System"))
{
resourcepath=resourcepath.Replace(".dll",".exe");
}
Streamstream=Assembly.GetExecutingAssembly().GetManifestResourceStream(resourcepath);
using(stream)
{
byte[]data=newbyte[stream.Length];
stream.Read(data,0,data.Length);
returnAssembly.Load(data);
}
}
returnnull;
};
}
}