Is there a way to find out whether an app.config file exists, without using "File.Exists"?
I tried
if ( !ConfigurationManager.ConnectionStrings.ElementInformation.IsPresent )
{...}
but IsPresent is false even if app.config with a connection string exists.
Edit:
Did I misinterpret the IsPresent Property?
Most simple way that I can think of is to add some "dummy" application setting flag then check for that flag, e.g.:
if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["dummyflag"]))
{
//config file doesn't exist..
}
The AppDomain
reports on where it expects the configuration file for the application to reside. You can test if the file actually exists (with no need for dummy AppSettings, and no need to try and work out what the configuration file should be called, or where it is located):
public static bool CheckConfigFileIsPresent()
{
return File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
You can create method in static class
public static class ConfigurationManagerHelper
{
public static bool Exists()
{
return Exists(System.Reflection.Assembly.GetEntryAssembly());
}
public static bool Exists(Assembly assembly)
{
return System.IO.File.Exists(assembly.Location + ".config" )
}
}
And then use where you want
ConfigurationManagerHelper.Exists(); // or pass assembly