La lógica para la creación de una ruta de acceso al lugar donde está el archivo de configuración del usuario vive normalmente va integrado en la aplicación, escpecially las partes
[CompanyName][AppName + some sort of guid][App version]
por lo que no es de manera general a pedir al marco en el que la configuración de usuario está almacenado.
Sin embargo, hemos resuelto este problema para nuestro sistema de programa, proporcionando una DLL común para todas las aplicaciones que contienen una función como esta
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;
}
Esta función le consigue la misma configuración de usuario para todas las aplicaciones.
OK, gracias por su tiempo. Esto parece una solución decente ... –