web-dev-qa-db-ja.com

接続文字列でWeb.Config変換を使用するにはどうすればよいですか?

現在のプロジェクトでは、ローカル開発マシンに有効な接続文字列がいくつかあります。

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

Web.Configトランスフォームを使用して、この式から運用サーバーに有効な式に変換するにはどうすればよいですか?本番サーバーは次のようになります。

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

構文は私には明らかではなく、その上で page を完全に理解することに失敗しています。

33
Mike Bailey

これは私にはうまくいきますが、私もそれが時々少しおかしくなることを発見しました。 Web.Config.Releaseという別のファイルを作成して、次のファイルを入力する必要があります。

<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

新しいファイルを作成する必要はありません。ソリューションエクスプローラーにあり、Web.configを展開して、Web.Release.configを開きます。

Scott Allanの優れたビデオがあります here (Configuration and Deployment> Config Transformationsの下)。

8