Ошибки в приложениях использующих Lers.Framework

После обновления до 3.34.2 во приложениях использующих Lers.Framework при попытке подключиться к серверу:

var server = new LersServer();
server.Connect(host, port, new BasicAuthenticationInfo(login, password));

теперь выкидывает исключение:

System.IO.FileNotFoundException: 'Не удалось загрузить файл или сборку "Microsoft.AspNetCore.SignalR.Client.Core, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" либо одну из их зависимостей. Не удается найти указанный файл.'

Если подтянуть через nuget, то ругается на другую dll. И так несколько раз пока все не подтянешь.

Если, например, Microsoft.AspNetCore.SignalR.Client.Core подтягивать через nuget то соответственно куча зависимостей подтягивается:
Microsoft.Extensions.DependencyInjection.Abstractions.3.1.0
Microsoft.Extensions.Logging.Abstractions.3.1.0
System.Buffers.4.5.0
System.ComponentModel.Annotations.4.7.0
System.Numerics.Vectors.4.5.0
System.Runtime.CompilerServices.Unsafe.4.7.0
System.Memory.4.5.3
Microsoft.Extensions.Primitives.3.1.0
Microsoft.Extensions.Configuration.Abstractions.3.1.0
Microsoft.Extensions.Configuration.3.1.0
Microsoft.Extensions.Configuration.Binder.3.1.0
Microsoft.Extensions.Options.3.1.0
System.Text.Encodings.Web.4.7.0
System.Threading.Tasks.Extensions.4.5.2
Microsoft.Bcl.AsyncInterfaces.1.1.0
Microsoft.Extensions.DependencyInjection.3.1.0
Microsoft.Extensions.Logging.3.1.0
System.IO.Pipelines.4.7.0
Microsoft.AspNetCore.Http.Features.3.1.0
Microsoft.AspNetCore.Connections.Abstractions.3.1.0
System.Threading.Channels.4.7.0
System.ValueTuple.4.5.0
System.Text.Json.4.7.0
Microsoft.AspNetCore.SignalR.Common.3.1.0
Microsoft.AspNetCore.SignalR.Protocols.Json.3.1.0
Microsoft.AspNetCore.SignalR.Client.Core.3.1.0

Сидеть угадывать что дальше на рантайме может понадобиться в каждом проекте как-то не хочется. Что можете посоветовать в решении проблемы?

Начиная с версии 3.34 для приложений использующих подключения к Серверу действительно требуется пакет “Microsoft.AspNetCore.SignalR.Client”. После установки данного пакета из Nuget подтягиваются все необходимые зависимости.

Также начиная с этой версии мы не регистрируем используемые нами библиотеки в GAC, а распространяем их вместе с приложением. Вы можете придерживаться такой же концепции либо регистрировать эти библиотеки в GAC. В данном случае вы, как разработчик, самостоятельно решаете для себя что вам удобнее.

В общем, чтобы не мучаться с версиями и кучей зависимостей, а при обновлении ЛЭРС УЧЕТ наверняка вы будете обновлять и Microsoft.AspNetCore.SignalR.Client и прочее, сделал как-то так:

//подписываемся на событие для разрешения и поиска сборок
AppDomain.CurrentDomain.AssemblyResolve += (sender, eventArgs) =>
{
  //ищем в папке c:Program FilesLERSClient файлы *.dll
  //загружаем их через Assembly.LoadFrom(path);
  //ищем такую сборку Assembly, у которой FullName совпадает с параметром Name аргумента eventArgs
  //или, если не находит, то пробуем поискать вхождение имени FullName из Assemly.ExportedTypes в имя eventArgs.Name(например требовалась сборка System.Runtime.CompilerServices.Unsafe версии 4.0.6.0, а в файлах ЛЭРС УЧЕТ была более новая версия, поэтому FullName не совпадает с eventArgs.Name);
  //возвращаем найденную Assembly или возвращаем null
};

И заработало. По идее раз вы используемые библиотеки распространяете вместе с приложением, то проблем возникнуть не должно.

Спасибо за представленный вариант решения проблемы! Он будет полезен другим пользователям нашего форума.