Я пытаюсь сгенерировать QRCode, используя .Net Core с AWS Lambda.Но, похоже, есть проблема с использованием библиотек System.Drawing с помощью лямбды.Все работает нормально, пока я не начну использовать любые функции System.Drawing.Этот вопрос был задан ранее, но, похоже, нет хороших решений.Вот код, который у меня есть в данный момент в контроллере:
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("hello", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData); //works till here. Commented below does not work.
//Bitmap qrCodeImageBitMap = qrCode.GetGraphic(20);
List<string> testing = new List<string>();
testing.Add("added");
return Ok(testing);
Вот часть ошибки, обнаруженной в журналах CloudWatch:
[Error] Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction: Unknown error responding to request: TypeInitializationException:
System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibdl: cannot open shared object file: No such file or directory
at Interop.Libdl.dlopen(String fileName, Int32 flag)
at System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary()
at System.Drawing.SafeNativeMethods.Gdip..cctor()
--- End of inner exception stack trace ---
at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromScan0...
Как заставить System.Drawing работать слямбда?Я не думаю, что есть альтернативные библиотеки, так как мне требуется функциональность рисования.Я также использую библиотеку QRCoder из https://github.com/codebude/QRCoder, но это не вызывает никаких проблем.