Я прочитал МНОГО вещей в основном через Google (не здесь, на SO) и не нашел что-то, что отвечает на мой вопрос, поэтому я задаю его здесь.
То, что я хочу добавить к «чему-то» (думаю, к AppDomain
), чтобы мой код мог РАЗРЕШИТЬСЯ, КАК Assembly.CreateInstance
конкретная DLL, которая находится вне папки компиляции моего приложения.
Я действительно чувствую, что AppDomain
- это класс, который нужно использовать, и AppendPrivatePath
звучит как используемый метод, но теперь он "устарел" ...
msdn предлагает использовать PrivateBinPath, но, насколько я понял, мне нужно создать новый домен приложений, и с моими тестами я чувствую, что Assembly.CreateInstance
не ищет ссылки в моем новом домене приложений
Какой-то код вроде:
AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
domaininfo.PrivateBinPath = "D:\\.....\\bin\\Debug\\";
Evidence adevidence = AppDomain.CurrentDomain.Evidence;
AppDomain newDomain = AppDomain.CreateDomain("FrameworkDomain", adevidence, domaininfo);
работает, но затем, когда я пытаюсь CreateInstance
, я получил исключение TargetInvocation
Я тоже попробовал:
Thread.GetDomain().SetupInformation.PrivateBinPath = "D:\\.....\\bin\\Debug\\";
, что звучит "особенным", но хорошо для меня, но не работает ...
Я действительно чувствую, что ДОЛЖЕН дать D:\\.....\\bin\\Debug\\
путь к текущему домену приложений, но это больше невозможно, поскольку AppendPrivatePath
устарел ...
Любая помощь?