Переносимость записей в dllmap в App.config - PullRequest
2 голосов
/ 09 июня 2009

Запись файла конфигурации dllmap используется в Mono для сопоставления запросов Windows DLL к библиотекам Linux (.so). Но кажется, что если Microsoft .NET Framework пытается проанализировать файл конфигурации с такой записью, возникает ошибка, потому что он не понимает «dllmap». Я думаю, что все остальное в моем дистрибутиве может распространяться без изменений как в Linux, так и в Windows XP. Из всей переносимости, связанной с этим, действительно ли эта конфигурация является недостатком - единственной непереносимой частью? Разве нет способа поделиться этим файлом на разных платформах?

Ответы [ 2 ]

2 голосов
/ 12 июня 2009

Вы уверены, что вам нужны записи "dllmap"? Разве вы не можете просто полагаться на автоматическое сопоставление «somelibrary» с «somelibrary.dll» в Windows и «somelibrary.so» в Linux?

Кроме того, я, хотя фреймворк просто пропускает записи, которых он не ожидает ...

РЕДАКТИРОВАТЬ: Стандартный способ доставки библиотек Linux - это наличие символической ссылки без версии, указывающей на последнюю версию. Таким образом, вы бы добавили libfmodex.so, указывая на libfmodex-4.22.01.so. Затем используйте [DllImport("fmodex")], а остальная часть автоматически вычислит остальное.

0 голосов
/ 29 апреля 2016

Поместите импортируемый код DLL в отдельную сборку DLL. Затем добавьте yourinterop.dll.config с записями dllmap. Он будет игнорироваться MS и обрабатываться моно. Смотрите мой дубликат вопроса .

...