Сбой загрузки динамической DLL с IOException в Windows Mobile - PullRequest
0 голосов
/ 20 февраля 2009

Я новичок в разработке для Windows Mobile и столкнулся с проблемой DLL.

Я использую Assembly.LoadFrom () для загрузки DLL на мой КПК, и она не может выполнить следующие действия: System.IO.IOException: Имя файла или сборки 'MyCustom.dll' или одна из его зависимостей не найдены.

DLL существует, я делаю File.Exists () до этого. Вот код, который я использовал, чтобы получить эту ошибку: Assembly asb = Assembly.LoadFrom (@ "MyCustom.dll");

Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 февраля 2009

Просто чтобы немного подробнее рассказать о других возможных причинах этой ошибки.

Если вы посмотрите на документацию LoadLibrary , то вы увидите следующее:

Если не указан полный путь к модулю указано, Windows Embedded CE ищет следующий путь для Модуль:

. The absolute path specified by the lpLibFileName parameter.
. The .exe launch directory.
. The Windows directory.
. ROM DLL files.
. An OEM-specified search path.

Следующий раздел реестра указывает путь поиска для использования с LoadLibrary и CreateProcess: Копировать Код

 HKEY_LOCAL_MACHINE\Loader   
 SystemPath=multi_sz:\\path1\\
                        \\path2\\

Путь ищется только если путь искомого файла нет явно указано.

Так что это может помочь понять, почему он не может найти DLL.

Если причина не в том, что не удается найти DLL, вот ссылка на статью о других распространенных причинах появления этой проблемы:

Возможные причины этого:

  1. DLL не является сборкой для Windows CE Это происходит, когда вы берете dll из Big Windows (NT, XP, Vista) и пытаясь использовать его на Windows CE устройство.
  2. DLL не создана для семейства процессоров Это происходит, когда вы берете DLL, созданную для другого процессор, чем целевой процессор
  3. Другая dll, которую нужно загрузить dll, недоступна Это происходит, когда загружаемая DLL загружает другую DLL и происходит сбой, когда эта DLL пытается загрузить другую DLL, которая не работает.
  4. Если нужной функции нет в dll. Это происходит, если DLL в системе не совпадает с который был построен, когда библиотека, которая Вы связаны с был создан. это иногда симптом неправильного использования SDK для вашей цели.

Самая распространенная проблема, с которой я сталкиваюсь, заключается в том, что другая DLL, от которой она зависит, недоступна, или функция в этой другой DLL недоступна.

0 голосов
/ 20 февраля 2009

Вы указываете правильный путь для этого файла?

Здесь - ссылка на метод

...