PortSip SDK C#: DllNotFoundException в контейнере Docker, а локально \EC2 работает хорошо

У меня есть базовое приложение.NET, которое использует библиотеку PortSip. До сих пор все работало нормально как локально на моем ноутбуке с Windows 10, так и в экземпляре EC2 AWS с установленным Windows Server 2019, и теперь я хотел бы, чтобы это работало в контейнере Docker.

Итак, я использовал Dockerfile, аналогичный тому, что упоминался по этой ссылке https://schwabencode.com/blog/2018/08/30/ASP-NET-Core-with-NET-Framework-on-Docker, чтобы получить образ Windows Server Core. как с.NET framework (что нужно PortSip), так и с.NET core (что нужно моему приложению), а также с добавленными командами для установки C++ Redistributable.

В результате при попытке запустить приложение появляется следующая ошибка:

Unhandled exception. System.DllNotFoundException: Unable to load DLL 'portsip_sdk.dll' or one of its dependencies: The specified module could not be
 found. (0x8007007E)

Библиотеки DLL есть! Кроме того, когда я меняю их на 32-разрядные библиотеки DLL PortSip, ошибка меняется на "Была сделана попытка загрузить программу с неправильным форматом". Это означает, что DLL существует, но по какой-то причине не может быть загружена. Также стоит упомянуть, что с точно такими же установками (.NET и распространяемый компонент C++) в пустом EC2, как упоминалось выше, приложение работает.

Что мне не хватает?

Спасибо заранее

1 ответ

Решено копированием двух библиотек DLL, C:\Windows\System32\edputil.dll и C:\Windows\System32\msdmo.dll с моей локальной машины на этот образ докера.

Другие вопросы по тегам