Copie o (s) arquivo (s) de um projeto para outro usando o evento post build… VS2010

Eu tenho uma solução com 3 projetos. Eu preciso copiar uma visão de um projeto para outro. Eu sou capaz de copiar a DLL criada através de events de pós-compilation como:

insira a descrição da imagem aqui

Então eu quero copiar o arquivo no projeto um ‘/Views/ModuleHome/Index.cshtml’ para uma pasta no projeto 2. Como faço para copiar arquivo (s) para o meu projeto desejado via evento de pós-compilation? obrigado

xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home" 

e se você quiser copiar pastas inteiras:

 xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views" 

Atualização: aqui está a versão de trabalho

 xcopy "$(ProjectDir)Views\ModuleAHome\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\ModuleAHome\" /Y /I 

Aqui estão alguns switches comumente usados ​​com o xcopy :

 /I - treat as a directory if copying multiple files /Q - Do not display the files being copied. /S - Copy subdirectories unless empty. /E - Copy empty subdirectories. /Y - Do not prompt for overwrite of existing files. /R - Overwrite read only files. 
 xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt 

Observe as aspas no caminho de origem e no caminho de destino, mas não no caminho para exludelist arquivo txt.

O conteúdo de ExcludedFilesList.txt é o seguinte: .cs \

Eu estou usando este comando para copiar o arquivo de um projeto na minha solução, para outro e excluir arquivos .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 \ Biblioteca \” / F / R / Y / I

/ F – exibe nomes completos de arquivos de origem e de destino

/ R – isso replaceá os arquivos somente leitura

/ Y – suprime o aviso para replace um arquivo existente (s)

/ I – assume que o destino é o diretório (mas deve terminar com)

Um pequeno truque – no alvo você deve terminar com o caractere \ para dizer ao xcopy que o alvo é o diretório e não o arquivo!

Chamar arquivo em Batch que executará o Xcopy para a origem dos arquivos necessários para o destino

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

Eu uso assim.

 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 

Observe o uso disso. $ (TargetDir) já tem ‘\’ “D: \ MyProject \ bin \” = $ (TargetDir)

Você pode encontrar macro no editor de comandos

insira a descrição da imagem aqui

Como as respostas anteriores, também estou sugerindo xcopy . No entanto, gostaria de acrescentar à resposta de Hallgeir Engen com o parâmetro /exclude . Parece haver um bug com o parâmetro impedindo que ele trabalhe com nomes de caminho longos ou que contenham espaços, pois as cotações não funcionarão. Os nomes dos caminhos precisam estar no formato “DOS” com “Documents” traduzindo para “DOCUME ~ 1” (de acordo com essa fonte ).

Portanto, se você quiser usar o parâmetro \ exclude, há uma solução alternativa aqui :

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

Observe que os caminhos de origem e de destino podem (e devem, se contiverem espaços) estar entre aspas, mas não o caminho para o arquivo de exclusão.

Se você quer levar em consideração a plataforma (x64, x86 etc) e a configuração (Debug ou Release) seria algo assim:

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