私の現在のプロジェクトには、いくつかの構成 (app.config、カスタム ConfigurationSection など) を備えた .NET コンソール アプリケーションがあります。構成では、ローカル ファイル システム上のファイルへの複数のパスが指定されています。個々の開発者マシンのパスは異なる可能性があるため、app.config ではなく machine.config で指定して、すべての開発者が独自のパスで「上書き」できるようにします。
したがって、app.config で configSection (要素「configSections」) を登録しますが、config セクションではパスを定義しません。machine.config で configSection を登録し、configSection をパスに追加します。
次のようになります。
app.config:
<configSections>
<section name="importingExec"
type="ImportingExecutableConfigSection, Executable" />
</configSections>
<importingExec>
<!-- xmlSchema xmlSchemaPath="D:\foo.xsd"/ -->
</importingExec>
machine.config:
<configSections>
<section name="importingExec"
type="ImportingExecutableConfigSection, Executable" />
</configSections>
<importingExec>
<xmlSchema xmlSchemaPath="D:\foo.xsd"/>
</importingExec>
次の問題があります: 構成を取得すると、構成セクション (必須!) が欠落しているため、例外がスローされます。machine.config からの値が返されることを期待していました!
PS: 呼び出して構成セクションを取得します
ConfigurationManager
.OpenExeConfiguration(ConfigurationUserLevel.None)
.GetSection("importingExec");