web-dev-qa-db-ja.com

変換構文を使用してweb.config設定を変更するにはどうすればよいですか?

サイトが公開されたときに変更したい値をweb.configファイルに保存しています。 TESTからLIVEに変更したい。

<appSettings>
    <add key="RequestMode" value="TEST" />
    // other keys here
</appSettings>

これはweb.config変換構文を使用して可能ですか?もしそうなら、どうですか?

ありがとう。

21
dotnetnoob

はい、これは変換構文で可能です。この変換でうまくいくはずです。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="RequestMode" value="LIVE" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
</configuration>
45
Erik Schierboom

これは、そのままVisual Studio 2010を使用して実行できます。唯一の注意点は、このプロセスがVisual Studio内で発行機能を使用するときにVisual Studio内から実行されることです。 MSBuildからこの変換を取得する機能はありません(自動ビルドを妨げます)。

<appSettings xdt:Transform="Replace">  <add key="ProdKeyA" value="ProdValA"/>  <add key="ProdKeyB" value="ProdValB"/>  <add key="ProdKeyC" value="ProdValC"/></appSettings>

ソース: Web.Config Transformations VS 201

また、Web.Config.XXXX変換ファイルがビルド定義と一致していることを確認してください。たとえば、デバッグとリリースはデフォルトでサポートされているため、リリースモードで公開するときにWeb.Config.Releaseを使用してWeb.Configを調整する必要があります。

1
Frazell Thomas

CTTツールを使用してWeb変換を実行することもできます CTT Website 次に、ファイルを公開した後、powershellを使用した展開でWeb構成を変換(変換ファイルを保持)し、その後で名前を変更できます。配備

以下のコードを http://mundrisoft.com/tech-bytes/web-config-transformation-for-project-deployment/ で見つけました。

<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyDB" 
      connectionString="ReleaseSQLServer" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
</configuration
0
Robb Ribeiro