Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
 OpenExeConfiguration Method (String...
Collapse All/Expand All Collapse All
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
ConfigurationManager..::.OpenExeConfiguration Method (String)

Opens the specified client configuration file as a Configuration object.

Namespace:  System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)
Visual Basic (Declaration)
Public Shared Function OpenExeConfiguration ( _
    exePath As String _
) As Configuration
Visual Basic (Usage)
Dim exePath As String
Dim returnValue As Configuration

returnValue = ConfigurationManager.OpenExeConfiguration(exePath)
C#
public static Configuration OpenExeConfiguration(
    string exePath
)
Visual C++
public:
static Configuration^ OpenExeConfiguration(
    String^ exePath
)
JScript
public static function OpenExeConfiguration(
    exePath : String
) : Configuration

Parameters

exePath
Type: System..::.String
The path of the configuration file. The configuration file resides in the same directory as the executable file.
ExceptionCondition
ConfigurationErrorsException

A configuration file could not be loaded.

Client applications use a global configuration that applies to all users, separate configurations that apply to individual users, and configurations that apply to roaming users. The userLevel value determines the location of the configuration file being opened. It indicates whether it has no user level (the configuration file is in the same directory as the application) or has a per-user level (the configuration file is in an application settings path determined by the user level type.).

The following code example shows how to use the OpenExeConfiguration method.

Visual Basic
        ' Get the application configuration file.
        ' This function uses the 
        ' OpenExeConfiguration(string)method 
        ' to get the application configuration file. 
        ' It also creates a custom ConsoleSection and 
        ' sets its ConsoleEment BackgroundColor and
        ' ForegroundColor properties to black and white
        ' respectively. Then it uses these properties to
        ' set the console colors.  
        Public Shared Sub GetAppConfiguration()
            ' Get the application path needed to obtain
            ' the application configuration file.
#If DEBUG Then
            Dim applicationName As String = _
                Environment.GetCommandLineArgs()(0)
#Else
            Dim applicationName As String = _
                Environment.GetCommandLineArgs()(0) + ".exe"
#End If

            Dim exePath As String = _
            System.IO.Path.Combine( _
                Environment.CurrentDirectory, applicationName)

            ' Get the configuration file. The file name has
            ' this format appname.exe.config.
            Dim config As System.Configuration.Configuration = _
                ConfigurationManager.OpenExeConfiguration(exePath)

            Try

                ' Create a custom configuration section
                ' having the same name that is used in the 
                ' roaming configuration file.
                ' This is because the configuration section 
                ' can be overridden by lower-level 
                ' configuration files. 
                ' See the GetRoamingConfiguration() function in 
                ' this example.
                Dim sectionName As String = "consoleSection"
                Dim customSection As New ConsoleSection()

                If config.Sections(sectionName) Is Nothing Then
                    ' Create a custom section if it does 
                    ' not exist yet.

                    ' Store console settings.
                    customSection.ConsoleElement. _
                        BackgroundColor = ConsoleColor.Black
                    customSection.ConsoleElement. _
                        ForegroundColor = ConsoleColor.White

                    ' Add configuration information to the
                    ' configuration file.
                    config.Sections.Add(sectionName, _
                                        customSection)
                    config.Save(ConfigurationSaveMode.Modified)
                    ' Force a reload of the changed section.
                    ' This makes the new values available 
                    ' for reading.
                    ConfigurationManager.RefreshSection( _
                        sectionName)
                End If
                ' Set console properties using values
                ' stored in the configuration file.
                customSection = DirectCast( _
                    config.GetSection(sectionName),  _
                        ConsoleSection)
                Console.BackgroundColor = _
                    customSection.ConsoleElement.BackgroundColor
                Console.ForegroundColor = _
                    customSection.ConsoleElement.ForegroundColor
                ' Apply the changes.
                Console.Clear()
            Catch e As ConfigurationErrorsException
                Console.WriteLine("[Error exception: {0}]", _
                                  e.ToString())
            End Try

            ' Display feedback.
            Console.WriteLine()
            Console.WriteLine( _
                "Using OpenExeConfiguration(string).")
            ' Display the current configuration file path.
            Console.WriteLine( _
                "Configuration file is: {0}", config.FilePath)
        End Sub
C#
    // Get the application configuration file.
    // This function uses the 
    // OpenExeConfiguration(string)method 
    // to get the application configuration file. 
    // It also creates a custom ConsoleSection and 
    // sets its ConsoleEment BackgroundColor and
    // ForegroundColor properties to black and white
    // respectively. Then it uses these properties to
    // set the console colors.  
    public static void GetAppConfiguration()
    {

      // Get the application path needed to obtain
      // the application configuration file.
#if DEBUG
      string applicationName =
          Environment.GetCommandLineArgs()[0];
#else
           string applicationName =
          Environment.GetCommandLineArgs()[0]+ ".exe";
#endif

      string exePath = System.IO.Path.Combine(
          Environment.CurrentDirectory, applicationName);

      // Get the configuration file. The file name has
      // this format appname.exe.config.
      System.Configuration.Configuration config =
        ConfigurationManager.OpenExeConfiguration(exePath);

      try
      {

        // Create a custom configuration section
        // having the same name that is used in the 
        // roaming configuration file.
        // This is because the configuration section 
        // can be overridden by lower-level 
        // configuration files. 
        // See the GetRoamingConfiguration() function in 
        // this example.
        string sectionName = "consoleSection";
        ConsoleSection customSection = new ConsoleSection();

        if (config.Sections[sectionName] == null)
        {
          // Create a custom section if it does 
          // not exist yet.

          // Store console settings.
          customSection.ConsoleElement.BackgroundColor =
              ConsoleColor.Black;
          customSection.ConsoleElement.ForegroundColor =
              ConsoleColor.White;

          // Add configuration information to the
          // configuration file.
          config.Sections.Add(sectionName, customSection);
          config.Save(ConfigurationSaveMode.Modified);
          // Force a reload of the changed section.
          // This makes the new values available for reading.
          ConfigurationManager.RefreshSection(sectionName);
        }
        // Set console properties using values
        // stored in the configuration file.
        customSection =
            (ConsoleSection)config.GetSection(sectionName);
        Console.BackgroundColor =
            customSection.ConsoleElement.BackgroundColor;
        Console.ForegroundColor =
            customSection.ConsoleElement.ForegroundColor;
        // Apply the changes.
        Console.Clear();
      }
      catch (ConfigurationErrorsException e)
      {
        Console.WriteLine("[Error exception: {0}]",
            e.ToString());
      }

      // Display feedback.
      Console.WriteLine();
      Console.WriteLine("Using OpenExeConfiguration(string).");
      // Display the current configuration file path.
      Console.WriteLine("Configuration file is: {0}", 
        config.FilePath);
    }

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
About exePath      Filipe Rodrigues   |   Edit   |   Show History
Although the example is right, the comment about the parameter exePath is wrong. This parameter IS NOT the 'path of the configuration file', as said, but the path of the executable, or assembly. If you pass a configuration file, this function does not throw a error, but you will not be able to read any configuration. Please correct this.
Hi,      I.W Coetzer   |   Edit   |   Show History
This is great, just whish this article would describe the scenario above or provide links to an example.

How would one do something like this where:
1) You have a custom managed assembly, that has been signed and installed into the GAC
2) You are referencing this custom managed assembly from an SSIS Package - Script Task
3) The custom managed assembly must be able to read from it's OWN app.config file, NOT from the DtsHost.exe.config file.

How would one go about to resolve a solution like this?
My custom managed dll makes use of Microsoft Patterns and Practices dlls etc. which need to read settings from an app.config file associated to my custom managed assembly, and I do not want to clutter the DtsHost.exe.config and DtsDebugHost.exe.config.

Bye
Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Site Feedback
Page view tracker