ti-enxame.com

Como uso a transformação Web.Config em minhas seqüências de conexão?

No meu projeto atual, tenho algumas cadeias de conexão válidas para máquinas de desenvolvimento local:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=localhost;Initial Catalog=MyDB;Integrated Security=SSPI"
  </connectionStrings>
....
</configuration>

Como eu usaria as transformações Web.Config para converter dessa expressão em uma válida para o nosso servidor de produção? O servidor de produção seria parecido com:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword"
  </connectionStrings>
....
</configuration>

A sintaxe não é óbvia para mim, e estou falhando completamente ao grokking o página nela.

33
Mike Bailey

Isso funciona para mim, mas eu também achei um pouco confuso às vezes. Você precisará criar outro arquivo chamado Web.Config.Release e preenchê-lo com o seguinte:

<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">

  <connectionStrings>
    <add name="local" connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

  </system.web>
    <appSettings>
        <add key="default_db_connection" value="local" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>
50
sbeskur

Você não precisa criar um novo arquivo, ele deve estar no Solution Explorer, expanda Web.config e abra Web.Release.config.

Scott Allan tem um bom vídeo nele aqui (em Configuração e implantação> Transformações de configuração).

8
Garrett Fogerlie