Get the file path of current application's config file

21,096

Solution 1

I've used

string folder = System.Web.HttpContext.Current != null ?
    System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_data") :
    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

without problems, but maybe there is some corner cases I don't know about...

Solution 2

You can use the ConfigurationFile property on the SetupInformation for AppDomain.CurrentDomain.

This will get either the web.config or and app.config (yourprogram.exe.config) location.

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

Solution 3

To find the location of executing application

System.Reflection.Assembly.GetExecutingAssembly().Location;

Don't know about web case.

Share:
21,096
dummy
Author by

dummy

Updated on July 09, 2022

Comments

  • dummy
    dummy almost 2 years

    The reason I asked this question is that I wanted to create a helper class for Remoting instantiation, and wanted to pass the appropriate app.exe.config (or web.config) file path to the RemotingConfiguration.Configure method, depending on the caller.

    Is there a way I could get the name of the config file for both Win and Web apps without checking if the application is Web or WinForms?

  • dummy
    dummy almost 14 years
    I presume you meant System.Reflection.Assembly.GetExecutingAssembly().Location + ".config", but actually I need a solution which would work for both apps.
  • John
    John about 9 years
    I have capital letter "D" for "App_Data".
  • Brian
    Brian about 8 years
    Honestly, this answer strikes me as pretty self-explanatory; the member names are incredibly descriptive.
  • Mike Christensen
    Mike Christensen over 5 years
    Note this is not supported in .NET Standard 2.0