2012-01-20 9 views
1

exeに関係のない設定ファイルを読み書きする必要があります。私はこれを試しています:設定ファイルが見つかりません

例外はスローされますが、fileEnvironmentは常にnullです。ファイルの内容は次のとおりです。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <section name="fileEnvironment" type="System.Configuration.NameValueSectionHandler"/> 
    </configSections> 

    <fileEnvironment> 
     <add key="DxStudioLocation" value="123456"/> 
    </fileEnvironment> 
</configuration> 

誰かが私を荒野から引き離してください。また、セクションの内容を取得した後、NameValueCollectionのエントリを書き込む方法や変更する方法もわかりません。 ありがとう

+0

<section name="fileEnvironment" type="System.Configuration.AppSettingsSection"/> 

はと消費?スタートアップアプリケーションとして持っているプロジェクトの設定ファイルはありますか? – Mharlin

+0

はい、5つのプロジェクトがあり、そのうち3つは同じ設定ファイルにアクセスする必要があります。 – JimBoone

+0

これは、どのexeにも関連しない設定ファイルです。私はこれを共通の設定プラットフォームとして使うことができると思った。アプリケーションは、メインのexeまたは各プロジェクトを実行するコンソールアプリケーションから実行する必要があります。 – JimBoone

答えて

0

に役立ちます願っています:あなたは溶液中でいくつかのプロジェクトを持っていますか

 var appConfiguration = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() { ExeConfigFilename = "SlamDunkSuper.config" }, ConfigurationUserLevel.None); 

     if (!appConfiguration.HasFile) // no need to null check, ConfigurationManager.OpenMappedExeConfiguration will always return an object or throw ArgumentException 
     { 
      //Configuration file not found, so throw an exception 
     } 
     else 
     { 
      var section = appConfiguration.GetSection("fileEnvironment") as AppSettingsSection; 
      if (section != null) 
      { 
       var dxStudioLocation = section.Settings["DxStudioLocation"].Value; 
      } 
     } 
-2

.net設定ファイルは実行中のexeファイルによって選択されます。したがって、5つのプロジェクト(4つのdllと1つのexe)がある場合、各プロジェクトは別の設定ファイルを持ちます。 exeファイルは、彼がロードされているDLLは、EXEの設定ファイルが自分のconfigファイルだと思うでしょう。

つまり、dllプロジェクトの設定ファイルを読むには、パスを使って明示的に開く必要があります。

あなたはいくつかのマイナーな調整をAppSettingsSectionをグローバル化することができ、それは

+0

OK、exeに関連しないcongifファイルを使用できないということは何ですか? – JimBoone

+0

明示的に読むことで、完全なパスを使用してXMLリーダーを開く必要があります。 – OopsUser

+0

@OopsUserが間違っています。 'OpenMappedExeConfiguration'を使ってパスの制限をオーバーライドすることができます。 – KMoraz

関連する問題