При создании домена приложения и подгрузке dll возникает исключение FileNotFoundExcption с текстом Не удалось загрузить файл или сборку "MyLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл.
Код приложения:
static void Main(string[] args)
{
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = Path.Combine(Directory.GetCurrentDirectory(), "MyApplication");
AppDomain domain = AppDomain.CreateDomain(Guid.NewGuid().ToString(), null, setup);
string dllPath = Path.Combine(Directory.GetCurrentDirectory(), "MyApplication", "MyLibrary.dll");
AssemblyName name = AssemblyName.GetAssemblyName(dllPath);
Assembly asm = domain.Load(name); //Возникает исключение
Type[] asmTypes = asm.GetTypes();
AppDomain.Unload(domain);
}
Код MyLibrary.dll:
namespace MyLibrary
{
public class MyMath
{
public int Sum(int a, int b)
{
return a + b;
}
}
}
Не знаю в чём проблема, файл dll есть в каталоге приложения, но почему выкидывает исключение?
Думаю, проблема в GetCurrentDirectory(). Текущий каталог — совсем не обязательно тот, где лежит ваша программа.
Попробуйте вместо этого
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости