Using App.Config File for Configuration Management in C# Console Applications

Nov 23, 2025 · Programming · 8 views · 7.8

Keywords: C# | Console Application | App.Config | Configuration Management | System.Configuration

Abstract: This article provides a comprehensive guide on using App.Config files to manage configuration in C# console applications. By adding System.Configuration reference and configuring AppSettings, developers can achieve functionality similar to Settings files in Windows Forms. The article includes complete code examples and configuration instructions to help readers master this practical technique.

Introduction

In C# development, application configuration management is a common requirement. Windows Forms applications typically use Settings files in Properties to store configuration information, but console applications require alternative solutions. The App.Config file provides a standardized approach, allowing developers to store key-value pairs in an XML configuration file.

Adding Necessary References

To use App.Config files in console applications, you first need to add a reference to the System.Configuration assembly. This can be done through Visual Studio's Reference Manager or by directly adding the appropriate package reference in the project file.

Configuring the App.Config File

The App.Config file uses XML format to store configuration information. For application settings, you can use the <appSettings> section to define key-value pairs. For example, to store the path of a batch file, configure it as follows:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>

In this example, the key attribute defines the setting name, and the value attribute stores the corresponding value.

Reading Configuration in Code

To read settings from App.Config in C# code, use the ConfigurationManager class. First, add a reference to the System.Configuration namespace:

using System.Configuration;

Then use the AppSettings property to retrieve the value for a specific key:

string batchFile = ConfigurationManager.AppSettings["BatchFile"];

Once you have the configuration value, you can use it in your application, such as starting an external process:

Process.Start(batchFile);

Practical Application Example

Suppose we need to start a batch file in a console application but want the batch file path to be configurable. Using App.Config, we can implement this functionality:

using System;
using System.Configuration;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        try
        {
            string batchFilePath = ConfigurationManager.AppSettings["BatchFile"];
            
            if (string.IsNullOrEmpty(batchFilePath))
            {
                Console.WriteLine("Batch file path not set in configuration");
                return;
            }
            
            Process.Start(batchFilePath);
            Console.WriteLine($"Started batch file: {batchFilePath}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error starting batch file: {ex.Message}");
        }
    }
}

Best Practices for Configuration Management

When using App.Config files, follow these best practices:

Comparison with Other Configuration Methods

Besides App.Config files, C# applications can use other configuration management approaches:

App.Config files remain a reliable choice in traditional .NET Framework applications, especially when maintaining existing projects.

Conclusion

By using App.Config files and the ConfigurationManager class, C# console applications can efficiently manage application configuration. This method provides functionality similar to Settings files in Windows Forms while maintaining code simplicity and maintainability. Mastering this technique is essential for developing configurable C# applications.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.