Привязка динамической сборки Autofac не работает в функциях Azure - PullRequest
0 голосов
/ 02 апреля 2019

Не знаю, как ссылки на сборки разрешаются в функции 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.'"

Буду признателен за любую помощь или понимание. Спасибо.

...