2011-03-07 6 views
5

설정을 user.config 파일에 저장하는 주 응용 프로그램이 있습니다..net 응용 프로그램의 user.config 파일 위치 확인

이 파일에서 설정을 읽어야하는 두 번째 앱이 있습니다.

기본 앱의 user.config 파일 위치를 간단하고 세련되게 표시 할 수 있습니까?

나는 내가

가 [Application.LocalUserAppDataPath] [회사 명]을 [프로그램 응용이 은 GUID의 일종 +] [앱 버전]

하지만 그 보인다

에서 수동으로 경로를 구축 할 수있는 것 같아요 거칠게 해키.

답변

1
escpecially, 사용자 구성 파일은 일반적으로 응용 프로그램에 구축되어 살고있는 곳으로 부품

[CompanyName][AppName + some sort of guid][App version] 

을 경로를 생성하는 로직이 너무 프레임 워크를 요청하는 일반적인 방법이없는

사용자 설정 저장됩니다.

그러나, 우리는이 기능을 사용하면 귀하의 모든 응용 프로그램에 대해 동일한 사용자 구성을 얻을이

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; 
} 

같은 기능을 포함하는 모든 응용 프로그램에 대한 공통 DLL을 제공함으로써 프로그램 시스템이 문제를 해결했다.

+0

확인해 주셔서 감사합니다. 이것은 괜찮은 해결책처럼 보입니다. –

0

당신이하려는 일에 따라 다릅니다. 설치 경로를 기본 디렉토리로 사용할 수 있습니다. 또는 설치 프로그램을 사용하는 경우 레지스트리 값을 설정하십시오. 그리고 아마도 여러분은 공유 된 값을 가진 독립적 인 설정 파일을 생성 할 수 있습니까? 그렇게하면 값을 섞지 않아도됩니다. 질문 할 때 그것이 우리에게 적절하지 않은지 나는 알 수 없습니다. 그래서 이것은 단지 아이디어 일뿐입니다.

0

당신은 구성 객체로 응용 프로그램 구성을로드하고 거기에서 파일 이름을 얻을 수의 ConfigurationManager를 사용할 수 있습니다 : 당신이 다른 ConfigurationUserLevel의 값을 사용할 수 있습니다

Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); 
string userConfigFilePath = cfg.FileName; 

참고, 글로벌 로컬 또는 로밍 설정에 도착.

편집 : exe 파일 이름을 인수로 사용하는 OpenExeConfiguration() 버전은 사용자 설정이 아닌 앱 구성 파일에만 액세스 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 다른 응용 프로그램에서 구성 파일을 가져 오는 데 어떻게 사용합니까? –

+1

ConfigurationManager.OpenExeConfiguration()에는 exe 경로를 인수로 사용하는 버전이 있습니다. http://msdn.microsoft.com/en-us/library/ms224437.aspx –

+1

-1 어떤 버전부터 받아 볼 수 있습니까? exe 경로는 App.config 파일 만 제공합니다. 다른 앱의 user.config를 얻는 방법으로 답을 업데이트하면 아래 표가 제거됩니다. –

관련 문제