Я пишу веб-приложение, используя Azure в C #, и мне нужно было использовать C ++ DLL, поэтому я добавил эту DLL в свой проект Visual Studio и использовал
[DllImport("myDLL", CallingConvention = CallingConvention.Cdecl)]
Однако эта DLL начинает падать после того, как я вызываю ее слишком много раз. Итак, я перешел на использование LoadLibrary()
вместо этого, как описано в этой записи блога, которая позволяет разгрузить и перезагрузить DLL при желании:
Недостатком этого подхода является то, что (в отличие от DllImport()
) он не распознает, что «myDLL» является частью проекта Visual Studio; для этого требуется каталог. Это становится проблематичным, когда я пытаюсь опубликовать свое приложение в Azure, потому что оно больше не может получить доступ к DLL. Есть ли хороший обходной путь для этого?
Задача ещё не решена.
Других решений пока нет …