visual-studio - tutorial - visual studio code ejemplos
Copia de archivo(s) de proyecto de Visual Studio al directorio de salida durante la compilaciĆ³n (5)
Cuando construyo un proyecto de Visual Studio, el ejecutable se escribe en el directorio de salida especificado en la Página de propiedades del proyecto.
Tengo un proyecto que tiene algunos archivos adicionales (por ejemplo, archivo .ini
) que el programa usa.
¿Cómo puedo configurar el proyecto para copiar el archivo en el directorio de salida para que cuando se ejecute el programa, tenga una copia del otro archivo en su CWD?
Revisé la página de propiedades del archivo y no había nada útil más que una opción para excluirlo de la compilación (que está deshabilitada), y el comando custom-build-tool está vacío (además es un archivo de texto sin formato que lo hace no necesita ningún procesamiento).
Mientras buscaba en la página de propiedades del archivo un campo de acción de creación, pensé: establezca el paso de creación personalizado para copiar el archivo (manualmente). Esto resultó ser más fácil de lo que pensaba. Pensé que requeriría usar cmd
u otro ejecutable externo ( xcopy
, robocopy
, etc.), pero eso no es necesario.
Establecí el paso de compilación personalizada de la siguiente manera:
Command Line : copy $(InputFileName) $(OutDir)
Description : Copying foobar...
Outputs : $(InputFileName)
Establecer el campo de salidas (correctamente) fue fundamental para evitar que VS siempre piense que el proyecto está desactualizado y necesita ser reconstruido (no estoy seguro si necesita un prefijo $(OutDir)/
).
Se refleja en la ventana de resultados como tal:
Copying foobar...
1 file(s) copied.
Compiling resources...
Linking...
Necesitas el $ adicional (OutDir). De lo contrario, en el paso de reconstrucción / limpieza tirará su fuente.
CommandLine : copy "$(SolutionDir)last-script.js" "$(TargetDir)Debug"
Outputs : $(TargetDir)Debug/last-script.js
Mejorando la respuesta de Synetech:
En VS 2013 Proyecto C ++ Línea de comando: copia% (Identidad) $ (OutDir) Descripción: Copiando foobar ... Salidas:% (Identidad) Funciona, pero da lugar a una dependencia circular, es decir, se ejecutará cada vez que exija increamental construir, no hay medidor ya ha sido copiado.
Para resolver esto, puede agregar ese elemento en la carpeta de destino, cambiar la ruta a $ (OutDir) y usarlo en el primer elemento agregado como Salida. Drawback: dos elementos con un nombre similar están en solución.
También útil xcopy con los parámetros / d / y en postbuild - copie solo si la fecha del archivo de destino es anterior.
Para copiar un archivo en el directorio de salida en Visual Studio 2003, puede usar el evento Post-Build:
- Haga clic derecho en el proyecto-> Propiedades
- Propiedades comunes-> Build Events
Establezca la línea de comando de evento posterior a la compilación en:
xcopy /y $(ProjectDir)my_file.ini $(ProjectDir)$(OutDir)
OK y construye!
Intente seleccionar el archivo en el Explorador de soluciones. Entonces debería poder ver sus propiedades en la ventana Propiedades (presione F4 si no está visible). Encontrarás dos propiedades:
- "Construir acción" y
- "Copiar al directorio de salida"
Establezca "Crear acción" en "Contenido", y luego - seleccione un valor apropiado para la configuración "Copiar al directorio de salida".
Ventana de propiedades del archivo con la configuración "Crear acción" y "Copiar al directorio de salida"
Si el camino anterior no funciona para usted, lea esta publicación " Copiar al problema del directorio de salida con el archivo .inf ". Y eche un vistazo a este y luego " Visual Studio: acción de compilación predeterminada para tipos de archivos no predeterminados "
Espero que ayude