3

私の現在のプロジェクトには、いくつかの構成 (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");
4

1 に答える 1

1

そのコードを使用して、exeの構成ファイルを明示的に要求しています。

あなたは使用する必要があります

ConfigurationManager.GetSection("importingExec")

マージされたファイルを取得するため。

乾杯クリス

于 2012-11-22T14:55:30.343 に答える