Heroku-18 с .NET Core GDI +: невозможно загрузить DLL 'libgdiplus': указанный модуль не найден - PullRequest
1 голос
/ 01 октября 2019

После обновления с Heroku-16 до стека Heroku-18 мое приложение .NET Core 2.2, которое ссылается на System.Drawing.Common для использования GDI +, выдает ошибку:

System.TypeInitializationException: The type initializer for 'Gdip' threw an exception.
--->System.DllNotFoundException: Unable to load DLL 'libgdiplus': The specified module could not be found.
at System.Runtime.InteropServices.FunctionWrapper `1.get_Delegate()
 at System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
 at System.Drawing.SafeNativeMethods.Gdip..cctor()

Это потому, что libc6-dev неустановлен ( см. эту проблему ). Я использую heroku-buildpack-apt для установки libgdiplus и libc6-dev), но похоже, что пакет больше не доступен во время выполнения на Heroku-18 ,только во время сборки ( см. эту страницу ).

Из журнала сборки:

remote: -----> Fetching .debs for libc6-dev
remote:        Reading package lists...
remote:        Building dependency tree...
remote:        Reinstallation of libc6-dev is not possible, it cannot be downloaded.
remote:        0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Возврат к Heroku-16 решает проблему.

Как я могу заставить эту работу работать со стеком Heroku-18 ?? Кто-нибудь нашел способ?

1 Ответ

0 голосов
/ 03 октября 2019

Из службы поддержки Heroku:

Я очень сожалею о проблеме, но, на мой взгляд, это невозможно. Этот пакет libc6-dev2.27-3ubuntu1 означает, что пакет доступен только во время сборки, но не во время выполнения. Более того, если у вас есть какие-то требования, вы можете проверить https://elements.heroku.com/buildpacks/eugeneotto/heroku-buildpack-secp256k1, но это официально не поддерживается buildpack, и мы не предоставляем поддержку для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...