У меня есть сильная именованная сборка AssemblyA. Я хочу ссылаться на AssemmblyB, который не сильно назван. Каков наилучший способ сделать это?Динамическая загрузка неподписанной сборки из подписанной сборки
Я видел несколько примеров загрузки AssemblyB в отдельный AppDomain, но я столкнулся с некоторыми проблемами. Ниже то, что я попытался (этот код внутри AssemblyA):
var domain = AppDomain.CreateDomain("NewDomainName");
var pathToDll = @"\\myDLLs\AssemblyB.dll";
var tmp = domain.CreateInstanceFromAndUnwrap(pathToDll, TYPE_NAME);
Теперь, я не уверен, что использовать для TYPE_NAME. Я хочу, чтобы иметь возможность использовать несколько разных типов из AssemblyB, поэтому я уверен, что здесь я ошибаюсь.
Другое дело, что я даже не могу ссылаться на AssemblyB от AssemblyA, потому что, как только я это сделаю, AssemblyA не сможет построить из-за сильного имени/отсутствия сильного несоответствия имени.
Должен ли я как-то ссылаться на AssemblyB из нового, неподписанного проекта?
В основном цель состоит в том, чтобы иметь доступ к AssemblyB, поскольку я просто ссылался на него напрямую.
Спасибо.
1) Убедитесь, что вызывающее приложение разрешает запуск неподписанных сборок. Возможно, вы можете сделать это во время выполнения, а затем только динамически загружать AssemblyB, когда приложение работает нормально. См. Assembly.Load(): http://msdn.microsoft.com/en-us/library/system.reflection.assembly.load%28v=vs.110%29.aspx –