¿Cómo configuro la ruta a un archivo DLL en Visual Studio?


130

Desarrollé una aplicación que depende de un archivo DLL. Cuando depuro mi aplicación, la aplicación se queja de que:

"Esta aplicación no pudo iniciarse porque no se encontró xxx.dll".

Así que tengo que copiar el archivo DLL en el mismo directorio que mi archivo .vcproj.

¿Hay alguna manera de configurar el proyecto para buscar el archivo DLL en (preferiblemente) alguna ruta relativa o (no preferida) alguna ruta absoluta?

Concepto similar a cómo establecemos incluir y ruta de la biblioteca en la configuración del proyecto.

Quiero decir que cuando depuro mi aplicación (presionando F5), aparecerá el error anterior.

Respuestas:


196
  1. Ir a las propiedades del proyecto (Alt + F7)
  2. En Depuración, mira a la derecha
  3. Hay un campo de Medio Ambiente.
  4. Agregue su ruta relativa allí (relativa a la carpeta vcproj), es decir, \ some-framework \ lib agregando PATH=%PATH%;$(ProjectDir)\some-framework\libo anteponiendo a la rutaPATH=C:\some-framework\lib;%PATH%
  5. Presione F5 (depuración) nuevamente y debería funcionar.

15
El campo Entorno toma NOMBRE = VALOR pares delimitados por punto y coma. Agregue a la variable PATH para que el Depurador VS busque ubicaciones adicionales para DLL: PATH =% PATH%; $ (ProjectDir) lib
Brent Faust

1
¿Hay una manera similar de hacer para la versión de lanzamiento también?
Narek

Necesitaba agregar la ruta dll a la variable $ (LibraryPath) (o incluirla en la lista en Directorios de biblioteca en la configuración de Propiedades de configuración-> Directorios VC ++).
Foster Boondoggle

1
@ SlippD.Thompson Sí, tienes razón. Pero puede lograr lo mismo usando Alt + p, p en su lugar.
Jenix

1
@ SlippD.Thompson Ah, al leer tu comentario nuevamente, creo que no entendí lo que querías decir. Sí estoy de acuerdo. Pero al menos, hay algunas teclas de acceso rápido que nunca cambian en Visual Studio, y 'Alt + p, p' es una de ellas. Estaba allí junto con 'Alt + F7', lo que significa ahora algo más como sabes. Además, 'Alt + p, p' solo significa 'Menú de proyecto> * Propiedades'.
Jenix


7

Ir a través de las propiedades del proyecto -> Rutas de referencia

Luego agregue una carpeta con DLL


44
No publique respuestas idénticas a varias preguntas. Publique una buena respuesta, luego vote / marque para cerrar las otras preguntas como duplicados. Si la pregunta no es un duplicado, adapte sus respuestas a la pregunta.
durron597

1
de lejos la mejor respuesta :)
Rathma

2
Esto no parece estar disponible en Visual Studio 2015 en un proyecto C ++. ¿Qué combinación de versión de Visual Studio y tipo de proyecto admite esta opción?
Filip Bártek

La pregunta de OP era sobre C ++ pero esta respuesta es para C #.
Jenix

No funcionó para mí con C # y VS2017
mherzog

4

Otra posibilidad sería establecer Working Directorydebajo de las opciones de depuración para que sea el directorio que tiene esa DLL.

Editar: iba a mencionar el uso de un archivo por lotes para iniciar Visual Studio (y establecer la variable PATH en el archivo por lotes). Entonces busqué un poco y vi que esta misma pregunta se hizo hace poco en esta publicación . La respuesta sugiere la opción de archivo por lotes, así como la configuración del proyecto que aparentemente puede hacer el trabajo (no lo probé).


¿Qué pasa si dependo de 2 dlls, cada uno vive en su propio directorio? (simplifiqué mi pregunta anterior)
sivabudh

No creo que sea posible hacer que esta solución funcione para más de un directorio.
Mark Wilkins el

3

En las propiedades del proyecto (haga clic con el botón derecho en el proyecto, haga clic en el botón de propiedades) ▶ Propiedades de configuración ▶ Eventos de compilación ▶ Eventos posteriores a la compilación ▶ Línea de comandos.

Edite y agregue una instrucción a la línea de comando. por ejemplo, copie botan.dll desde la ruta de origen a la ubicación donde se está ejecutando el programa.

copy /Y "$(SolutionDir)ProjectDirs\x64\Botan\lib\botan.dll" "$(TargetDir)"

Propiedades del proyecto


No tengo idea de si es correcto hacerlo, pero el IDE me da esa opción y ha sido útil, creo que es una buena opción si quiero copiar todos los archivos necesarios a otra carpeta para distribuir su programa. Hechizo simple pero efectivo. Aquí en esta pregunta hay diferentes respuestas para llegar al mismo fin. Pero uso esta opción y evito muchos dolores de cabeza.
Joma

Las otras opciones no funcionaron para mí, solo esta, pero parece que las otras deberían ser el camino correcto.
rjferguson

-1

Sé que esta pregunta se había respondido hace años, pero para aquellos como yo que necesitaban cambiar el lugar donde el depurador inicia la aplicación, cambie la propiedad del comando en Propiedades del proyecto -> Depuración.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.