Copie archivos de un proyecto a otro mediante el evento de creación posterior … VS2010

Tengo una solución con 3 proyectos en ella. Necesito copiar una vista de un proyecto a otro. Puedo copiar la DLL creada a través de eventos de comstackción de publicaciones como esta:

enter image description here

Así que quiero copiar el archivo en el proyecto uno ‘/Views/ModuleHome/Index.cshtml’ a una carpeta en el proyecto 2. ¿Cómo copio los archivos a mi proyecto deseado a través de un evento post-construcción? Gracias

 xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt 

Observe las comillas en la ruta de origen y la ruta de destino, pero no en la ruta al archivo exludelist txt.

El contenido de ExcludedFilesList.txt es el siguiente: .cs \

Estoy usando este comando para copiar el archivo de un proyecto en mi solución, a otro y excluyendo los archivos .cs.

 /D Copy only files that are modified in sourcepath /y Suppresses prompting to confirm you want to overwrite an existing destination file. /s Copies directories and subdirectories except empty ones. /r Overwrites read-only files. 

xcopy “$ (TargetDir) * $ (TargetExt)” “$ (SolutionDir) \ Scripts \ MigrationScripts \ Library \” / F / R / Y / I

/ F – Muestra los nombres completos de los archivos fuente y destino

/ R: esto sobrescribirá los archivos de solo lectura

/ Y – Suprime la solicitud de sobreescribir un archivo (s) existente

/ I – Supone que el destino es el directorio (pero debe terminar con)

¡Un pequeño truco: en el objective debe terminar con el carácter \ para decirle a xcopy que el objective es el directorio y no el archivo!

Archivo de Batch Llamadas que ejecutará Xcopy para los archivos requeridos de origen a destino

 call "$(SolutionDir)scripts\copyifnewer.bat" 

Lo uso así.

 xcopy "$(TargetDir)$(TargetName).dll" "$(SolutionDir)Lib\TIRM\x86\" /F /Y xcopy "$(TargetDir)$(TargetName).lib" "$(SolutionDir)Lib\TIRM\x86\" /F /Y /F : Copy source is File /Y : Overwrite and don't ask me 

Tenga en cuenta el uso de esto. $ (TargetDir) ya tiene ‘\’ “D: \ MyProject \ bin \” = $ (TargetDir)

Puede encontrar macro en el editor de comandos

enter image description here

Al igual que las respuestas anteriores, también estoy sugiriendo xcopy . Sin embargo, me gustaría agregar a la respuesta de Hallgeir Engen el parámetro /exclude . Parece que hay un error con el parámetro que le impide trabajar con nombres de ruta que son largos o que contienen espacios, ya que las comillas no funcionarán. Los nombres de las rutas deben estar en formato “DOS” con “Documentos” traduciéndose a “DOCUME ~ 1” (según esta fuente ).

Por lo tanto, si desea utilizar el parámetro \ exclude, hay una solución alternativa aquí :

 cd $(SolutionDir) xcopy "source-relative-to-path-above" "destination-relative-to-path-above /exclude:exclude-file-relative-path 

Tenga en cuenta que las rutas de origen y destino pueden (y deben, si contienen espacios) estar entre comillas, pero no la ruta al archivo de exclusión.

Si desea tener en cuenta la plataforma (x64, x86, etc.) y la configuración (Depuración o Liberación), sería algo como esto:

 xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y