获取任何.net应用程序的user.config文件的位置

Kei*_*idy 5 .net visual-studio

我有一个主要的应用程序将设置保存到user.config文件.

我有第二个应用程序,需要从此文件中读取设置.

是否有一种简单/优雅的方式来获取主应用程序的user.config文件的位置?

我想我可以手动建立路径

[Application.LocalUserAppDataPath] [CompanyName] [AppName +某种guid] [应用版本]

但这似乎非常hacky.

Doc*_*own 1

创建用户配置文件所在位置的路径的逻辑通常内置于应用程序中,特别是部件

[CompanyName][AppName + some sort of guid][App version]
Run Code Online (Sandbox Code Playgroud)

因此没有通用的方法来询问框架存储用户配置的位置。

然而,我们为我们的程序系统解决了这个问题,为所有包含这样的函数的应用程序提供一个通用的 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;
}
Run Code Online (Sandbox Code Playgroud)

此功能可为您的所有应用程序提供相同的用户配置。