メインのWeb.config
ファイルがあり、その下にWeb.Test.config
、Web.Development.Config
などがあります。
テスト構成でSlowCheetahを使用して変換をプレビューすると、値が正しく変換されているように見えます。
ビルド環境を開発からテストに切り替えてアプリケーションをデバッグしようとすると、アプリケーションはメインWeb.config
ファイルにある値で実行されます(つまり、何も変換しません)。
常にベースWeb.config
ファイルを使用するのではなく、デバッグ時にビルド環境に正しい構成を選択させるにはどうすればよいですか?これは可能ですか?
ビルド時にWeb.config
を変換できます。このターゲットを*.csproj
ファイルに追加します。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
<TransformXml
Source="Web.Base.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
Originの設定をWeb.Base.config
に保存します。変換を有効にすれば十分であり、どのXML構成ファイルでも機能します。 SlowCheetahはもう必要ありません。
http://sebnilsson.com/a5410281/asp-net-transform-web-config-with-debug-release-on-build/
XML変換は、ビルド中ではなく、Webアプリを公開するときにのみ適用されます。
これは ブログ投稿 ビルド設定を使用した回避策の詳細です。