Сборка консольного приложения. NET Core в Ubuntu - ищет windows dll вместо .so файлов c# nuget с собственным кодом - PullRequest
2 голосов
/ 25 марта 2020

У меня есть пакет c# nuget, который использует некоторый нативный (c ++) код, который поддерживает кросс-платформенную разработку, что означает, что когда вы вызываете c# nuget из другого проекта, в зависимости от ОС он либо вытягивает .so файлы (linux) или .dll файлы (windows).

Теперь у меня есть консольное приложение для тестирования некоторого кода (. net core 3), которое также косвенно вызывает вышеуказанное упомянутый c# nuget. Я хочу собрать и запустить это консольное приложение в Ubuntu 18.04. Проблема в том, что когда я собираю консольное приложение, я получаю файлы .so, как и ожидалось, но когда я запускаю его, приложение ищет файлы .dll и жалуется, что их там нет (чего нет, поэтому я получаю DLLNotFound Exception). Кто-нибудь знает, почему во время сборки консольное приложение в linux собирается с «поведением windows»? Я думаю, это как-то связано с тем, что NET строит вещи в linux.

PS: когда я использую вышеупомянутый c# nuget в качестве микросервиса в среде linux, все работает хорошо.

...