Olá pessoal, tudo certo?
Voltando a falar sobre MSBuild. Há quanto tempo! Hoje um post curtinho em função do “avançado da hora”.
Se você está acompanhando a série, já consegue entender direitinho a “lógica” de um projeto para MSBuild. Logo, já tem condições de entender boa parte do Build de seu software. Na medida que avançarmos, criaremos toda a fundamentação necessária para construir processos de Build customizados.
Hoje, mostro como copiar arquivos. Vamos aos fatos…
Posts anteriores dessa série
Se está chegando agora, talvez queira ler o que já foi escrito nessa série. Considere a leitura dos posts anteriores. São eles:
- Parte 4 – Simple Conditions
- Parte 3 – Items
- Parte 2 – Tasks, Targets e Properties;
- Parte 1 – Fundamentos
Cópia simples de arquivos com a Copy Task
Copiar arquivos é uma operação comum em processos de build. No MSBuild, usamos uma Task chamada Copy para essa operação. Observe:
Perceba que, de forma semelhante a linha de comando, a Copy Task espera basicamente dois argumentos:
- SourceFiles – uma lista de arquivos representada em um item (veja a parte 3);
- DestinationFolder – o diretório para onde desejamos copiar os arquivos.
Perceba que, no lugar de especificar o diretório destino diretamente, criei uma Property. Essa é uma boa prática na construção de projetos de build.
Copiando arquivos recursivamente utilizando coringas
Relacionar arquivos em um item é muito chato. Por isso, não fazemos isso
Obviamente, assumo que você esteja habituado a usar coringas. Veja o exemplo anterior reescrito:
A grande novidade aqui é o coringa “diretório-recursivo”, indicado pelo **. Esse coringa faz com que a lista de arquivos considerada comece pelo diretório especificado e continue nos seus subdiretórios. Isso significa que, se você tiver dois arquivos em src, e mais dois arquvios em um subdiretório dentro de src, todos os quatro arquivos serão considerados.
Observe, entretanto, que esse script copia todos os arquivos, inclusive os que estão em subdiretórios, para uma única pasta. Ou seja, a estrutura de subdiretórios não é replicada.
Criando no diretório destino uma estrutura igual ao diretório origem
Como replicar a estrutura de subdiretórios durante a cópia. Resposa direta: Assim…
O que eu fiz aqui foi configurar, para cada item, o destino. A chave é o metadado RecursiveDir.
Por hoje, era isso!
Posted on março 4, 2011 by elemarjr
0