10

app.configにいくつかの設定が含まれているが、別のファイルのセクション<appSettings />も参照するセクションを作成することはできますか?<appSettings />

これにより、開発者のみが関心を持つ必要がある構成オプションを保持できます。たとえば、メインウィンドウにデバッグ出力を表示するオプション (非常に面倒ですが、私にとっては便利です) や、特定のファイルを特定の場所に保存するオプションなどです。

具体的には、これは私が達成しようとしていることです:

<!-- this is the appSettings section of the normal app.config file,
     which also contains everything else that app.config would -->
<appSettings configSource="AppSettings.config"> <!-- references another file -->
  <add key="deployment_config_option1" value="1"/>
  <add key="deployment_config_option2" value="2"/>
</appSettings>

<!-- this a new appSettings section of another file called DevSettings.Config
     which only contains settings us developers are interested in
     by keeping these settings in a different file, 
     I can ensure it's never deployed -->
<appSettings> <!-- references another file -->
  <add key="show_debug_on_screen" value="true"/>
  <add key="save_copy_to_desktop" value="false"/>
</appSettings>
4

1 に答える 1

12

はい。可能なシナリオの数を考えると、ドキュメントはやや薄いですが、以下の引用によると、appSettings タグのみの場合にマージがあると述べています

Web.config ファイルを変更するとアプリケーションが再起動されるため、別のファイルを使用すると、ユーザーはアプリケーションを再起動せずに appSettings セクションの値を変更できます。別のファイルの内容は、Web.config ファイルの appSettings セクションとマージされます。この機能は appSettings 属性に限定されています。

ASP.NET の場合のこれ (以下) のテストは、<add>タグを使用して動作することを示しています。下位ファイルでタグのような手の込んだものを利用する<clear>と、明らかに問題が発生する可能性がありますが、そのエッジケースはテストしていません。ASP 以外の展開テクノロジについて話すことはできません。Machine.Config もテストされていません。

web.config ファイルで:

    <appSettings file="_config\AppSettings.Config">
            <add key="testing-1" value="Web.Config" />
    </appSettings>

「_config\AppSettings.config」ファイル:

    <appSettings>
            <add key="testing-2" value="_config/AppSettings.config" />
    </appSettings>
于 2012-11-05T21:06:52.517 に答える