Web.configの切り替え2

Visual Studio 2010 でのWeb.configの切り替えの続き

Transform 属性と Locator 属性の個別の要素での使用っていうところの日本語がいまひとつ分かりにくくて、アプリケーションの発行時に何度かエラーが出たけど、ようやく分かった。理解するの遅っ。

たとえば、Web.configに2つほどKeyのあるappSettingsがあるとして、

<appSettings>
    <!-- 設定1(パス) -->
    <add key="Settings1" value="C:\Work\"/>
    <!-- 設定2 (サイズ)-->
    <add key="Settings2" value="1"/>
</appSettings>

Web.Release.configにはこのように書いておくと、うまく変換してくれる。なるほどねー、LogatorとTransformってそういうことだったのですな。

<appSettings>
    <!-- 設定1(パス) -->
    <add key="Settings1" value="D:\Work\" xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)"/>
    <!-- 設定2 (サイズ)-->
    <add key="Settings2" value="2" xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)"/>
</appSettings>

ちなみに確認の仕方もメモしておく(最初、配置してから確認してて面倒だなーと思ったので)

  • Releaseビルドにしておいて、配置パッケージの作成を行う
  • 出力結果に、パッケージ "SFA.App.WebUI.zip" が次の場所に 1 つのファイルとして正常に作成されています:file:///C:/Work/AppWebUI/obj/Release/Package と出るので
  • \obj\Release\TransformWebConfig\transformed 内のWeb.configを確認します