Не знаю, как ссылки на сборки разрешаются в функции Azure, но следующий код прекрасно работает в консольном приложении (я пробовал использовать как консоль ядра .net, так и консоль .net 4.6.1). Если я попытаюсь использовать тот же код в приложении функции, я получу сообщения об ошибках, которые я упомянул в комментариях к коду. Я использую последнюю версию (15.10.2046.0) функций и веб-инструментов работы.
Примечание. Я вручную скопировал myplugin.dll в папку bin моего функционального приложения. То же самое я сделал с моим консольным приложением, где работает тот же код.
var assemblyRoot = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var pluginPath = Directory.GetFiles(assemblyRoot, $"myplugin.dll").FirstOrDefault();
var pluginAssembly = Assembly.LoadFile(pluginPath);
var builder = new ContainerBuilder(); // I am using Autofac
builder.RegisterAssemblyTypes(pluginAssembly).AsImplementedInterfaces().SingleInstance();
var container = builder.Build();
// Here I am getting errors like "Unable to find assembly '<assembly>'. Are you missing a private assembly file?" for various referenced assemblies like automapper, MongoDB.Bson etc.
var plugIn = container.Resolve<IPlugin>();
// Here I am getting "'IPlugIn' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.'"
Буду признателен за любую помощь или понимание. Спасибо.