0

現在、解決できない問題が発生しています。

私はこのコードを持っているアプリケーションを持っています:

AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "App.config");
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile = Path.Combine(System.Reflection.Assembly.GetExecutingAssembly().Location, "App.config");
MessageBox.Show(ConfigurationSettings.AppSettings.Count.ToString());

構成ファイルは、実際にはアプリケーションフォルダー内のApp.configと呼ばれます(2つのアプリケーションが同じ構成ファイルを読み取り/変更しているため、これを行っています)。

Visual Studio Debuggerを使用していずれかを起動すると、11個のアプリ設定があることが正しく表示されます。ただし、デバッガーの外部で実行すると、0になります。

ここで何が間違っている可能性がありますか?私はこのコードが過去に機能したことを100%確信しています。

4

2 に答える 2

1

私はついに今それを自分で解決することができました。解決策は、次の方法で構成設定にアクセスすることです。

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
于 2011-03-22T13:16:35.390 に答える
0

App.Config に正しいパスを渡していないようです。代わりにこれを試してください:

AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "App.config");
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "App.config"); 
MessageBox.Show(ConfigurationSettings.AppSettings.Count.ToString());

Path.GetDirectoryName() の呼び出しに注意してください。コードはexeファイルの場所を取得し、そこに「App.Config」を追加しています。これは、存在しないファイルに解決されています。

于 2011-03-22T13:27:08.927 に答える