Запись файла конфигурации dllmap используется в Mono для сопоставления запросов для DLL-файлов Windows к библиотекам Linux (.so). Но похоже, что если .NET Framework .NET пытается проанализировать файл конфигурации с такой записью, возникает ошибка, потому что она не понимает «dllmap». Я думаю, что все остальное в моем дистрибутиве может быть распределено без изменений как на Linux, так и на Windows XP. Из всей мобильности, связанной с этим, является ли эта запись конфигурации действительно падением - одной не переносной частью? Разве нет способа поделиться этим файлом и на разных платформах?App.config dllmap entry portability
2
A
ответ
2
Вы уверены, что вам нужны записи «dllmap»? Не можете ли вы просто положиться на автоматическое сопоставление «somelibrary» с «somelibrary.dll» в Windows и «somelibrary.so» в Linux?
Кроме того, я, хотя рамки просто пропустить записи он не ожидает ...
EDIT: Стандартный способ транспортировки библиотеки Linux является иметь версию менее символическую ссылку, указывающую на последнюю версию. Таким образом, вы бы добавили libfmodex.so
, указывая на libfmodex-4.22.01.so
. Затем используйте [DllImport("fmodex")]
, и рамка будет автоматически отображать остальные.
0
Вставьте код импорта dll в отдельную сборку dll. Затем добавьте файл yourinterop.dll.config с записями dllmap. Он будет игнорироваться MS и обрабатываться моно. См. Мой duplicate question.
1) Имя библиотеки Windows - fmodex.dll. Имя библиотеки Linux - libfmodex-4.22.01.so. Я бы предпочел не переименовывать их, и я сомневаюсь, что автоматическое сопоставление это выяснит. 2) Я думал, что .NET будет пропускать записи, которые он не понимает, пока я не ударил ошибку времени выполнения - по-видимому, он никогда не пытался прочитать конфигурационный файл до тех пор, пока не возникла ошибка, а затем, когда он попытался прочитать конфигурацию, чтобы увидеть как реагировать, у него была другая ошибка обработки файла. – BlueMonkMN
Я мог проверить себя, но я не загружался в Linux на данный момент: есть ли такая вещь, как символическая ссылка в файле .tar.gz, чтобы при извлечении архива вы получили файл и символическую ссылку, указывающую на него ? – BlueMonkMN
Да, это поведение dafault дегтя. – skolima