Поиск dll в определенной папке - C#
Формулировка задачи:
Добрый день. Моя программа использует несколько самописных dll. Если я ложу эти библиотеки рядом с программой - она прекрасно запускается. Но стоит мне переместить их в другую папку, скажем /lib/ - то программа не работает.
Подскажите, пожалуйста, как сделать так, что бы программа искала эти библиотеки именно в этой папке?
Решение задачи: «Поиск dll в определенной папке»
textual
Листинг программы
internal static class CustomDirectories
{
public const string LibDirectory = "Lib";
}
class Program
{
static void Test()
{
var contract = new JsonArrayContract(typeof (string));
Console.ReadKey(true);
}
private static void Main(string[] args)
{
try
{
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
Test();
Console.ReadKey(true);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
Console.WriteLine($"Could not found assembly: {args.Name}");
var fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, CustomDirectories.LibDirectory, string.Format($"{args.Name.Split(',').First()}.dll"));
return Assembly.LoadFile(fullPath);
}
}