Это кажется Моно, игнорирует dllmaps в локальном конфигурационном файле.
Я хочу портировать свое приложение.NET на Linux (человечность), которая называет собственные библиотеки, таким образом, у меня есть dllmaps, чтобы заставить мой код работать. В моно документах говорится, что необходимо сделать something.exe.config для something.exe и поместить специализированные конфигурации в него. это анализирует файл (потому что это жалуется, делаю ли я некоторые орфографические ошибки в нем), и имя файла корректно, но кажется, что это игнорирует dllmaps.
Файл конфигурации прост:
<configuration>
<dllmap dll="i:openal32.dll" target="libopenal.so" />
</configuration>
Моно не находит openal32.dll и бросает DllNotFoundException. Но если я копирую это dllmap запись в основном/etc/mono/config файле затем, все прекрасно. Если делают $MONO_LOG_LEVEL=debug, моно..., обманывает для наблюдения то, что он делает и я вижу, что нет никакой попытки загрузить libopenal.so вообще. Но много попыток загрузить libopenal32.dll, ./libopenal32.dll libopenal32.so, openal32.so, и т.д. файлы.
Вероятно, я столкнулся с Моно ошибкой снова?
Я хочу упаковать этот файл конфигурации в архиве, и я не хочу просить, чтобы мои пользователи смешали с/etc/mono/config файлом.
Какие-либо идеи?
- это все ваши атрибуты DLLIMPORT в коде, используя «OpenAL32.dll» или некоторые используют «OpenAlL32» вместо этого? В любом случае файл конфигурации относится к сборке, содержащую методы P / Invoke: наиболее вероятной проблемой состоит в том, что вы создали конфиг для основной сборки, когда методы P / Invoke находятся в отдельной сборке библиотеки. Просто переименуйте файл в OpenAlusIngAssembly.dll.config.