He observado exactamente este mismo error, pero la solución no fue la instalación de la redistribuible. Todas las DLL dependientes estaban presentes en el sistema de acuerdo con depends.exe.
En mi caso, el icono de KERNEL32.DLL estaba ligeramente teñido de rojo. Depends.exe no ofrecía muchas explicaciones, pero la búsqueda reveló que faltaba una de las funciones importadas de la DLL en el sistema. Para ver las funciones importadas, seleccione la DLL dependiente en la vista de árbol y busque la importación en el panel derecho. Realice un pedido por la columna PI para ver los iconos rojos de importaciones faltantes.

En mi caso, la función que falta era una función que no existía en mi sistema operativo de destino triste, Windows XP. Ya que mi programa no dependen directamente de esta función, que era capaz de salirse con la #define
ing lo siguiente en mi proyecto:
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
Compilar con estas macros hizo lo que la función en cuestión no fue declarado en las cabeceras , y consecuentemente no importado en tiempo de carga. Ahora pude usar regsvr32
. Esto, por supuesto, es un caso muy específico (y afortunado). No dependía de esa importación ni de ninguna otra API más nueva, así que pude salirme con la reorientación del proyecto. Si no fuera una DLL del sistema, habría necesitado encontrar una versión más nueva que podría llevar fácilmente a la necesidad de actualizar todo un subárbol del gráfico de dependencia. O lo que es peor, si dependiera de las importaciones faltantes, se necesitaría una refactorización seria.
Para resumir, este mensaje de error puede ser causada por los siguientes temas:
- El archivo DLL no se ha encontrado o no se puede leer. Verifica la línea de comando.
- Algunas DLL dependientes no se encontraron o no se pudieron leer.
- Faltan algunas importaciones de algunas DLL dependientes. Si se trata de DLL de sistema, es probable que se esté dirigiendo a una versión incorrecta de Windows. Si no se trata de DLL de sistema, debe instalar versiones más nuevas de ellos y todas sus dependencias.
1 .: Aparte de ieshims.dll y WER.DLL que parece que es un error en esta antigua herramienta.
2 .: O realmente, algún problema al cargar los archivos DLL en un sistema en particular
¿Dónde está project.dll? en el mismo directorio donde invocas este comando? ¿en el camino? – stijn
sí, está en el mismo directorio (de lo contrario recibiría un error que dice que no existe ese archivo) – Danield
luego abra el dll en el cajero de dependencias y vea qué dlls faltan – stijn