The logic for creating the path to the place where the user configuration file lives is usually embedded in the application, especially the parts
[CompanyName][AppName + some sort of guid][App version]
, .
, DLL ,
static Configuration GetMainConfig()
{
string mainPgmConfigDir = GetMainProgramConfigDir();
ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = Path.Combine(mainPgmConfigDir, "user.config");
return ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None);
}
static string GetMainProgramConfigDir()
{
string appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string companyDir = Path.Combine(appDataDir, VersionInfo.Company);
string productDir = Path.Combine(companyDir, "yourProgramName");
string versionDir = Path.Combine(productDir, "yourVersionNumber");
return versionDir;
}
.