Vista DLLImport Проблема C # - PullRequest
       170

Vista DLLImport Проблема C #

1 голос
/ 20 августа 2009

[DllImport ("DoSomething.dll", EntryPoint = "нечто_dump", SetLastError = true)] приватный статический extern void нечто_dump (дампер IntPtr);

Когда я запускаю этот DLLImport на компьютерах с XP, он работает нормально, но на Vista я получаю исключение:

Невозможно загрузить DLL 'DoSomething.dll': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

На обеих машинах он находится в каталоге Windows / System32, но по какой-то причине Vista не загружает его.

И когда я полностью укажу путь на машине Vista ... DllImport ("C: \ WINDOWS \ system32 \ DoSomething.dll" ... Это работает!

Должен ли я на самом деле указывать функции DLLImport на машине vista искать в каталоге system32?

Ответы [ 2 ]

0 голосов
/ 08 октября 2009

Поместите Dll в «настройки документа \ администратор \» по этому пути к работе.

Обратите внимание, что вам нужно поместить все поддерживающие файлы, например .ino или .txt, файлы поддержки для этой dll.

Будет работать нормально.

Всего наилучшего.

С уважением, Prasath

0 голосов
/ 21 августа 2009

Проблема в том, что кто-то копировал dll в текущий выходной каталог решений ... Проблема в том, что они не копировали зависимости dll в выходной каталог ... Так что каким-то образом XP мог разрешить эти зависимости, и Vista потерпела неудачу. (DLL одинакова на обеих ОС)

Решение. Удалите копирование системных dll-файлов в каталог выходных данных текущих решений ...

...