19

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?

Community
  • 1
  • 1
dummy
  • 255
  • 1
  • 3
  • 7

3 Answers3

30

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
Wai Ha Lee
  • 8,598
  • 83
  • 57
  • 92
Clement
  • 3,990
  • 4
  • 43
  • 44
14

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...

Peter
  • 1,595
  • 13
  • 18
3

To find the location of executing application

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

Don't know about web case.

bluish
  • 26,356
  • 27
  • 122
  • 180
Arseny
  • 7,251
  • 4
  • 37
  • 52
  • I presume you meant `System.Reflection.Assembly.GetExecutingAssembly().Location + ".config"`, but actually I need a solution which would work for both apps. – dummy Jun 02 '10 at 11:12