Como configurar web.config Transform

No ciclo de desenvolvimento de um software temos a tarefa de publicar o software em diferentes ambientes, como Teste, Homologação e Produção e na maioria das vezes essa tarefa envolve algumas configurações no arquivo Web.Config do projeto para alterar a string de conexão, algumas chaves que devem ser diferentes para cada ambiente

Para resolver esse problema temos um conceito de Transform onde conseguimos configurar quais chaves serão alteradas para cada ambiente

Quando criamos um projeto no Visual Studio, automaticamente temos dois arquivos Web.Config, uma para Debug e outro para Release, veja abaixo:

Veja que no arquivo Web.Config temos algumas chaves no item ConnectionString e AppSettings, conforme abaixo

Configurando o Web.Config.Debug

Agora vamos configurar essas mesmas chaves para o arquivo Web.Config.Debug

Configurando o Web.Config.Release

Agora vamos configurar essas mesmas chaves para o arquivo Web.Config.Release

Perceba que temos um novo atributo chamado xdt:Transform=”SetAttributes” xdt:Locator=”Match(key)” esse é o atributo que será responsável por fazer a troca de configuração nos arquivos Web.Config

Depois de realizar a configuração, vamos fazer um publish do software selecionando em qual configuração queremos realizar a publicação conforme abaixo:

Veja o arquivo Web.Config depois de publicado

Criando uma nova configuração

Agora vamos criar a nossa própria configuração (Teste, Homologação e Produção) para isso clique em Build -> Configuration Manager

Clique em New

Adicione o Name e selecione Copy Settings from para Empty e clique em OK

Agora temos que criar o Web.Config para nossa nova configuração, clique com o botão direito sobre Web.Config da aplicação e selecione Add Config Transform

Automaticamente será criando um novo arquivo Web.Teste.Config

Dessa forma podemos criar um Web.Config para cada ambiente que temos e também podemos configurar o Build do TFS para usar essas configurações

Referências

http://msdn.microsoft.com/pt-br/vstudio/ff801895

http://msdn.microsoft.com/en-us/library/dd465318.aspx

Qualquer dúvida, opinião, reclamação mande seu comentário!

Aquele Abraço!

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.