我有一个将设置保存到 user.config 文件的主应用程序。
我有第二个应用程序需要从此文件中读取设置。
有没有一种简单/优雅的方法来获取主应用程序的 user.config 文件的位置?
我想我可以手动建立路径
[Application.LocalUserAppDataPath][CompanyName][AppName + some sort of guid][App version]
但这似乎非常hacky。
最佳答案
创建用户配置文件所在位置的路径的逻辑通常内置于应用程序中,尤其是部分
[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;
}
此功能为您的所有应用程序提供相同的用户配置。
关于.net - 获取任何 .net 应用程序的 user.config 文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5219273/