Домой Dll Внедрение DLL в EXE: Справочник по C#

Внедрение DLL в EXE: Справочник по C#

614
0


1.Поставьте в свойствах вашей библиотеки — «внедренный ресурс».

2.Затем подпишитесь на событие , например в конструкторе формы:

//using System.Reflection;
//using System.IO;

public Form1()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
InitializeComponent();
}

      В процессе выполнение, когда вашему коду понадобится сборка и он нигде не сможет ее найти, как раз сработает событие AssemblyResolve и нужно реализовать обработчик, т.е. что делать надо в таком случае, а делать надо вот что: извлечь сборку из ресурсов проекта и «предоставить» коду. Все!

private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//получаем имя сборки(короткое, без расширений)
string shortName = new AssemblyName(args.Name).Name;

//получаем ресурс из сборки по его имени, тут же помещая в созданный поток
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(shortName + ".dll"))
{
//Считываем ресурс в массив байтов
byte[] data = new BinaryReader(stream).ReadBytes((int)stream.Length);

//Загружаем сборку из массива байтов в текущий домен приложения и возвращаем её
return Assembly.Load(data);
}
}

ЧИТАТЬ ТАКЖЕ:  Комедийные шоу: ТОП популярных шоу

Внедрение DLL в EXE: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь