0

私のプロジェクト web.config でいくつかのカスタム構成セクションが定義されています。現在の web.config セットアップでは、これらは問題なく参照されます。値が環境 (DEV、QA、UAT、PROD) から変更されているため、appSettings エントリと共にこれらのカスタム構成セクションの一部を独自の .config ファイルに抽出しようとしています。

私が直面している問題は、カスタム構成セクションが同じファイルを指している場合、それぞれがルート要素がそのタイプであると期待していることです。以下は、試行された web.config セットアップのスニペットです。

<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="custom1" type="Namespace.custom1, myProject"/>
        <section name="custom2" type="Namespace.custom2, myProject"/>
    </configSections>
    <custom1 file="/Dev.config">
    </custom1>
    <custom2 file="/Dev.config">
    </custom2>

    <appSettings file="/Dev.config">
    ... non environment specific entries
    </appSettings>

</configuration>

私の Dev.config ファイル内には、次のセクションがあります

<?xml version="1.0"?>
    <custom1>
        <customVal1 attr1="abc" attr2="xyz"/>
    </custom1>
    <custom2>
        <diffCustomVal1 difAttr1="True" difAttr2="Jim"/>
    </custom2>

    <appSettings>
        ... environment specific entries
    </appSettings>

オンラインで検索しましたが、気に入ったアイデアは見つかりませんでした。他の人がこの問題にどのようにアプローチしたのか疑問に思いました。また、別のカスタム構成セクションから単一の外部構成を作成して、上記のものをそのファイル内に配置しようとしましたが、プログラムはその構成ファイルから appSettings エントリを取得できませんでした。

4

1 に答える 1

0

継続的デリバリーの観点からは、環境ごとに個別の構成ファイルを用意する方が簡単です。

それらは、ソース内の別のフォルダーに保持できます。'DEV' フォルダーは、プロジェクトと共に保持される既定のフォルダーです。

展開スクリプト/プロセスの一部として、各環境に展開される構成ファイルを制御します。

私はあなたが以前に話しているような「連鎖」を見たことがありますが、最終結果は通常、各環境で大量の冗長エントリが発生する迷路のような構成になります。

于 2012-12-11T20:29:11.853 に答える