[Visual-studio] ¿Cómo hacer que Visual Studio copie un archivo DLL al directorio de salida?


Answers

$ (OutDir) resultó ser una ruta relativa en VS2013, así que tuve que combinarlo con $ (ProjectDir) para lograr el efecto deseado:

xcopy /y /d  "$(ProjectDir)External\*.dll" "$(ProjectDir)$(OutDir)"

Por cierto, puede depurar fácilmente los scripts agregando 'echo' al principio y observar el texto expandido en la ventana de salida de compilación.

Question

Tengo un proyecto de Visual Studio C ++ que se basa en un archivo DLL externo. ¿Cómo puedo hacer que Visual Studio copie este archivo DLL automáticamente en el directorio de salida (depuración / publicación) cuando construyo el proyecto?




(Esta respuesta solo se aplica a C #, no a C ++, lamento haber leído mal la pregunta original)

Ya he pasado por DLL infierno como este. Mi solución final fue almacenar los archivos DLL no administrados en el archivo DLL administrado como recursos binarios, y extraerlos a una carpeta temporal cuando el programa se inicia y eliminarlos cuando se elimina.

Esto debería ser parte de la infraestructura de .NET o pinvoke, ya que es muy útil ... Hace que su DLL administrada sea fácil de administrar, tanto utilizando Xcopy como una referencia de Proyecto en una solución más grande de Visual Studio. Una vez que haces esto, no tienes que preocuparte por los eventos posteriores a la construcción.

ACTUALIZAR:

Publiqué código aquí en otra respuesta https://.com/a/11038376/364818