У меня есть проверка, чтобы убедиться, что файл app.config существует и сообщить об ошибке, если это не так:
System.Windows.Forms.MessageBox.Show(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
if (!File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile))
{
throw new ConfigurationErrorsException("Unable to find configuration file. File is expected at location: "
+ AppDomain.CurrentDomain.SetupInformation.ConfigurationFile + "\n");
}
Когда я собираю решение, файл app.config в добавляется в выходной каталог как AppName.exe.config, а при запуске извне Visual Studio AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
содержит путь C: \ path \ AppName.exe. config (из VS это C: \ path \ AppName.vshost.exe.config). Если я удаляю AppName.exe.config, значением будет C: \ path \ Appname.config (без .exe).
Я немного поэкспериментировал, и, если существует Appname.config, этот файл также будет работать для загрузки значений моих настроек.
Что здесь происходит? Мне нужно, чтобы все было согласовано с целью сообщения об ошибках.