C# Sandbox
ЗАДАЧА
загрузите приложение с любого места на компьютере в массив байтов (byte[])
using (FileStream fs = new FileStream(path, FileMode.Open))
using (BinaryReader br = new BinaryReader(fs))
var bin = br.ReadBytes(Convert.ToInt32(fs.Length));
Укажите путь к библиотекам
создайте домен AppDomain.CreateDomain
установить события nameDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve; для загрузки библиотек
загрузите массив байтов nameDomain.Load(bytes)
и запустите приложение Invoke метод Main
Вот код для примера
public static void Run()
{
var path = Path.Combine(assemblyDependencyPath, "WpfApp1.exe");
if (File.Exists(path))
{
// read the bytes from the application exe file
using (FileStream fs = new FileStream(path, FileMode.Open))
using (BinaryReader br = new BinaryReader(fs))
{
var bin = br.ReadBytes(Convert.ToInt32(fs.Length));
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
// load the bytes into Assembly
var a = Assembly.Load(bin);
// search for the Entry Point
// *** Indirectly call the remote interface
var result = a.EntryPoint.Invoke("ExecuteDynamicCode", null);// this is the object to return
}
}
}
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs argss)
{
var domain = sender as AppDomain;
if (argss.Name.Contains(".resources"))
return null;
var di = new DirectoryInfo(assemblyDependencyPath);
var module = di.GetFiles().FirstOrDefault(i => i.Name == argss.Name + ".dll");
if (module != null)
{
return domain.Load(module.FullName);
}
return null;
}
Нужно его доработать или модифицировать
-
224 2 0 Готов сделать. пишите в лс, обсудим все более детально.
Skype: olehspidey
Telegram: @olehspidey
Актуальные фриланс-проекты в категории C#
Добробка в существующей версии 1с розница блока для РЦ(распределительного центра)В общем поясню, что у нас за база - есть общий сервер, где есть база Розница (где ставятся все приходы) - база УТП, куда переливаются все продажи - считается наценка, остатки по складам - маленькие базы розничных магазинов. По обменам у нас магазины обмениваются с базой Розница… C и C++, C# ∙ 3 дня 9 часов назад ∙ 6 ставок |
Нужно сделать миграцию текущей рабочей программы с foxpro на C#Всем привет! у нас есть программа на foxpro (в ней есть несколько модулей, программа для учета), есть исходники программы, при острой необходимости можно проконсультироваться с людьми по поддержке текущей программы что нужно сделать: 1. аналитику, что и как работает, составить… C#, Десктопные приложения ∙ 6 дней назад ∙ 18 ставок |
Младший C#Ищем талантливого и амбициозного Junior C# разработчика, который стремится к профессиональному росту и новым вызовам. Твои будущие задачи: - Разработка и поддержка бэкенд-решений с фронтендом (Telegram-бот); - Автоматизация рутинных процессов в отделах Android-разработки,… C# ∙ 6 дней 15 часов назад ∙ 8 ставок |