Из FAQ:
исключения dllnotfound
Если вы получаете dllnotfound исключения, то это означает, что что вы не копировали вновь созданные dll в шагах 6 и 7.
Это общая ошибка, что означает, что DLL, используемая исполняемым файлом, не найдена. Это не обязательно означает, что DLL, на которую ссылаются напрямую, является проблемой. Как правило, если вы не копировали файлы gdcm.dll и связанные с ними библиотеки, но установили gdcmsharpglue.dll в качестве одной из ваших ссылок на программы, вы получите эту ошибку. Это не означает, что gdcmsharpglue отсутствует, это означает, что основная библиотека отсутствует.
Чтобы узнать, какая DLL отсутствует, попробуйте использовать Dependency Walker. Эта программа найдет недостающую библиотеку, а затем вы можете поместить ее на путь исполняемого файла.
Одним из способов решения этой проблемы является настройка каталога «includes» в вашем дереве приложений (при условии, что вы находитесь в Windows, а не Mono - Mono может быть другим), который содержит библиотеки gdcm. Оттуда вы можете создать событие post-build для своего проекта, поэтому файлы будут скопированы, когда вы выполните сборку. Этот подход занимает некоторое время, каждый раз, когда вы выполняете сборку, но экономит время, когда вы пытаетесь выяснить, где находятся ваши библиотеки, и почему вы получаете DLL не найденные исключения.
- открыть ваше решение
- правой кнопкой мыши на вашем проекте
- выберите «создать события» (третья вкладка сверху вниз)
- поместить команды некоторые дос в «Командная строка события после построения» коробка. У меня есть
mkdir Debug
mkdir Release
copy ..\..\..\Includes\gdcm\*.dll ..\Debug\*.dll
copy ..\..\..\Includes\gdcm\*.dll ..\Release\*.dll
Два MKDIR там внутри, так что если вы восстановление с нуля, вы не получите ошибку в сборке. То есть, если вы создаете отладочную версию и у вас нет каталога выпуска, строки копирования выдают вам ошибку. Если вы не скопируете оба каталога, когда вы собираетесь строить свою сборку релизов после работы в отладке все это время, ваша сборка релизов не будет работать, и вы будете очень расстроены, когда вы поймете, что забыли скопировать dll как для выпуска, так и для отладки.
Продолжайте смотреть на innerExceptions. Вероятно, вы получите ошибку «Файл не найден». Используйте тег [mono], если это необходимо. –
Было ли у вас какое-либо решение? я столкнулся с той же проблемой – minakshi