c# dllnotfoundexception

c# - DllNotFoundException, pero DLL está ahí



(5)

Abra DLL en el sistema problemático en http://www.dependencywalker.com/

Entonces estoy usando un SDK para un generador de números aleatorios de hardware que proporciona un dll llamado PsyREG.dll para interactuar con él, así como también una fuente de c # para usar los métodos del dll.

Ha funcionado en el pasado, pero de alguna manera ha dejado de funcionar. Mis manos están un poco atadas ya que en este momento no tengo acceso al dispositivo en cuestión, así que no puedo probar muchas cosas ...

Sin embargo, aquí está la cosa rara. El dll está ahí, el mismo lugar donde siempre ha estado. Ahd, de hecho, File.Exists ("PsyREG.dll") devuelve true, y lo he verificado dos veces y es exactamente de la misma manera que la fuente de c # proporcionada lo importa, por ejemplo [DllImport ("PsyREG.dll")].

¿Algunas ideas?


Es probable que esta dll tenga algunas dependencias que no se hayan registrado o no estén en la misma carpeta de su aplicación.


Estaba lidiando con la misma excepción con respecto a uno de mis DLL (llamémoslo A ). C # se estrelló porque afirmaba que no podía encontrar esta DLL ( A ) (mientras estaba allí en la misma carpeta que el ejecutable).

Resultó que el problema se debió a que A dependía de otra DLL (llámela B ). B no estaba en el camino, por lo que A no podía cargarlo cuando lo necesitaba. Como B necesitaba un montón de otras DLL, la solución fue agregar el directorio de B a la PATH entorno PATH .

Es interesante cómo C # falla con el error que dice que A no se encuentra cuando en realidad no se encontró B ...


Me encontré con este problema y resolví con lo siguiente:

Hay una dependencia en msvcr90.dll si compila en / MD. Intenta compilar el código con / MT en su lugar.

Project properties > C/C++ > Code Generation > Runtime Library: /MT


Tal vez debería verificar si está esperando una versión específica del producto de la dll, y asegurarse de que las versiones del producto aún coincidan correctamente.