ASP.NET transformação de config na Build (F5)_

Usando plugins como o Configuration Transform, nos permite criar os app.debug.config e app.release.config. E além disso também faz com que a aplicação utilize as configurações escolhidas do Drop quando se está executando (F5).

Pesquisando um pouco na web para buscar uma forma de se ter o mesmo comportamento para o web.config, achei o seguinte post: http://www.kongsli.net/nblog/2012/01/13/enabling-web-transforms-when-debugging-asp-net-apps/.

Que basicamente em poucos passos já nos permite escolher a configuração no DropDown (Debug/Release) do Visual Studio e rodar a aplicação (F5) com essa configuração escolhida.


Passo 1: No diretório da aplicação (Windows Explorer), renomeie o web.config para web.template.config

Passo 2: No Visual Studio dê "Unload Project" e "Edit xxxx.csproj"

Passo 3: Procure por Web.Config no xml e irá encontrar algumas tags.
Substitua ou adeque as tags para ficar algo como (atenção com os nomes das tags None):
<Content Include="Web.config" />
<None Include="Web.template.config" />
<None Include="Web.Debug.config">
   <DependentUpon>Web.template.config</DependentUpon>
</None>
<None Include="Web.Release.config">
   <DependentUpon>Web.template.config</DependentUpon>
</None>


Passo 4: Após a tag <Import> do "Microsoft.CSharp.targets" adicione o seguinte:
<PropertyGroup>
  <BuildDependsOn>
    CustomWebConfigTransform;
    $(BuildDependsOn);
  </BuildDependsOn>
</PropertyGroup>
<Target Name="CustomWebConfigTransform">
   <TransformXml source="Web.template.config" transform="Web.$(Configuration).config" destination="Web.config" />
</Target>

Pronto! Sua aplicação já cria o Web.Config quando faz Build!

OBS: O único problema é que "pacotes do nuget" que fazem alterações no web.config não são alterados no web.template.config, o que obriga a ser feito manualmente.

Comentarios

Comente você tambem

Tecnologia do Blogger.