Ps0a Labs

I take the right pills (.Net, Teatro,Web, Ciclismo)

Publicação de sites (MSBuild)

A forma de publicação de sites do VS é extremamente fácil e simples, conforme a imagem abaixo:

 

image

Ao clicar em "Publish Web Site" o VS basicamente faz todo o resto ao melhor estilo next > next > finish.  Para saber mais a própria Microsoft fornece uma documentação bem extensa. Para visualiza-la clique aqui.

O problema é o seguinte, como todo processo extremamente automatizado você vai encontrar alguma dificuldade para realizar tarefas que fujam ao comum. No meu caso este site está hospedado em um provedor que não é meu, logo eu tenho uma cota de transmissão de dados que torna o processo de cópia de todo o site durante o build proibitivo. Por exemplo eu quero alterar o site localmente, mas na hora de publica-lo no provedor não quero enviar as imagens todas novamente.

Para estes casos podemos usar diretamente o MSBuild. No meu caso só precisei criar um arquivo ".proj" com as tasks que permitissem limpar um diretório criar a versão compilada do site nele.

Conforme abaixo:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Clean;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
  <PropertyGroup>
    <physical_path>C:\Diretorio do site\site</physical_path>
    <target_path>C:\Diretorio do site complilado\compiled</target_path>
    <dir_list>dir /ad /b "$(target_path)"</dir_list>
    <dir_del>for /f "Tokens=*" %%i in (’$(dir_list)’) do rd /s/q "$(target_path)\%%i"</dir_del>
    <file_del>del /q "$(target_path)\*.*"</file_del>
  </PropertyGroup>
  <Target Name="Clean">
    <Exec Command="$(dir_del)"/>
    <Exec Command="$(file_del)"/>
  </Target>
    <Target Name="Build">
        <AspNetCompiler VirtualPath="/virtualSite" PhysicalPath="$(physical_path)" TargetPath="$(target_path)" />
    </Target>
</Project>

 

Após criar o arquivo basta ir ao Command Prompt do VS e digitar:

MSBuild project.xml (xml é uma das possíveis extensões, na verdade ela não importa). Quem conhecer o projeto Ant ficará impressionado com a semelhança (rs..). Também é possível acessar o MSBuild por meio do VS para ver como clique aqui.

A parte de limpar o diretório antes de compilar é meio chata, mas graças ao site do Cory Foy quase não deu trabalho.

 

Depois de compilar a publicação fica por conta do bom e velho cliente FTP.

Ps0a

 

Enviar por e-mail. Hits para esta publicação: 188.

Deixe uma resposta.