Как сделать так, чтобы функции Azure v2 загружали сборку из папки bin, а не из хоста bin? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть зависимость от моего кода для старого пакета keyvault

Если я в своей функции проверяю, что он загружает:

var a = AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(Path.Combine(assemblyFolder, "Microsoft.Azure.KeyVault.dll")));

Я вижу, что он загружает 3.0.0, а не 1.0.0, а также загружается из

AppData/Local/AzureFunctionsTools/Releases/2.24.0/cli/Microsoft.Azure.KeyVault.dll

а не папка bin моей функции вывода ... \bin\Debug\netcoreapp2.2\bin\

Как мне сказать, чтобы мой функциональный проект использовал dll в выходном лотке?

Не то, чтобы сборка загружалась только для отладки происходящего. Мой клиентский код не работает позже из-за несовместимости версий 1.0.0 и 3.0.0.

1 Ответ

1 голос
/ 18 июня 2019

Вы можете использовать код как показано ниже:

var binPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string dll = Directory.GetFiles(binPath, "Microsoft.Azure.KeyVault.dll", SearchOption.AllDirectories)[0];
Assembly loadedAssembly = Assembly.LoadFile(dll);

Снимок: enter image description here

...