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
|
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
var executingassembly = Assembly.GetExecutingAssembly();
var assemblyname = new AssemblyName(args.Name);
var path = assemblyname.Name + ".dll";
{
eb = CEmbeddedAssembly.LoadAutoEmbeddedResource(this, path);
}
return eb;
};
public class CEmbeddedAssembly
{
public static Assembly LoadOnEmbeddedRessource(string resource)
{
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource))
{
if (stream == null)
return null;
var buf = new byte[stream.Length];
stream.Read(buf, 0, buf.Length);
Assembly a2 = Assembly.Load(buf);
return a2;
}
return null;
}
public static Assembly LoadAutoEmbeddedResource(Application app, string path)
{
string resource = Array.Find(app.GetType().Assembly.GetManifestResourceNames(), x =>
x.EndsWith(path));
if (resource != null)
{
return LoadOnEmbeddedRessource(resource);
}
else
return null;
}
} |
Partager