В настоящее время я работаю над проектом по миграции проекта .NET 4.7.2 Framework на .NET Core 2.1. Мне нужно использовать DLL, которая была изначально скомпилирована как x86.
Моя многоуровневая логика выглядит так:
.NET Core 2.1 проект (Любой ЦП): получить класс обслуживания, внедренный из .NET
.NET Стандартный проект (Любой процессор): содержит бизнес-логику (в настоящее время стандарт .net, но будет перенесен в ядро) и загружает DLL из
.C ++ / DLL проект: изначально был создан для среды x86, я просто перекомпилировал в x64 DLL, на которую ссылался фактически в обоих проектах выше.
Мой проект .NET Core 2.1 содержит SignalR Hub, который получает экземпляр IMyService, внедренный в конструктор. Я разрешаю зависимость в своем классе Startup в основном проекте, например так:
services.AddSingleton<IMyService, MyService>();
Однако, когда я не ссылаюсь на DLL, все работает нормально, как только я ссылаюсь на DLL и использую тип из внешней библиотеки, я получаю следующее исключение:
An unexpected error occurred invoking 'MyService' on the server. TypeInitializationException: The type initializer for '<Module>' threw an exception.
У вас есть идеи, как я могу решить эту проблему? У меня заканчиваются идеи. Спасибо!!
Задача ещё не решена.
Других решений пока нет …