Загрузка x64 DLL в проект .NET Standard: произошла непредвиденная ошибка при вызове «Типа» на сервере - PullRequest
0 голосов
/ 11 декабря 2018

В настоящее время я работаю над проектом по миграции проекта .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.

У вас есть идеи, как я могу решить эту проблему?У меня заканчиваются идеи.Спасибо !!

...