2012-03-01 2 views
2

현재 2 개의 App, App1 및 App2가 있습니다.다른 프로젝트의 app.config 파일에 액세스 할 수 없습니다.

App1에는 InstallDir 문자열을 저장하는 app.config 파일이 있습니다. 내가 Properties.Settings.Default.InstallDir을 사용하여 벌금 App1에서 액세스 할 수 있습니다. 위대한 작품이지만 App2에서 액세스 할 수 있어야합니다.

VS에서 접근성을 Internal에서 Public으로 변경했습니다. App2에서 액세스하려고하면 App1에 대한 참조를 추가하고 using App1;App1.Properties.Settings.Default.InstallDir을 사용하지만 아무 것도 반환하지 않습니다. 그것은 예외를 던지지 않으며 단지 빈 문자열만을 반환합니다.

어떤 아이디어라도 높이 평가합니다.

+0

의견으로는이 정보를 제 3의 장소에 두지 마십시오. 두 앱 모두 별도의 설정 파일이나 데이터베이스처럼 액세스 할 수 있습니까? dicussing하는 설정의 종류는 보통 app.config에있는 것보다 변동성이 큽니다. – dash

답변

3

모든 응용 프로그램에는 런타임에 구성을 읽는 자체 app.config 파일이 있습니다. app2의 app1을 참조 했으므로 App1.Properties.Settings.Default.InstallDir 변수에 액세스 할 수 있지만 런타임에 App2의 app.config에 해당 값이 없으므로 null을 반환합니다. 당신이 (내가 가정) 2 개 프로젝트간에 구성 옵션을 공유 일부에 액세스 처음에 설정에 대한 래퍼를 만들려면

+0

감사합니다. 나는 약간 혼란 스럽다. 그래서 App2의 설정 파일에서 같은 값을 가지지 않고 App2의 App1 값에 접근 할 수 없습니까? –

+0

@BaliC, 맞아, 그게 내가 말하는거야. –

2

와 두 번째 프로젝트에서 그것을 사용 (의이 static 클래스를 가정 해 봅시다).

+0

감사. 구성 파일을 사용하는 이유는 응용 프로그램을 닫은 후에 InstallDir 값을 유지해야합니다. 앱이 닫힌 후에 정적 클래스의 변수가 어떻게 든 유지되지 않는다면? –

+0

@Bali : APP가 어떻게 "닫힐"수 있습니까? EXE 프로젝트를 참조하십니까? – Tigran

+0

예, exe 프로젝트를 참조하므로 응용 프로그램을 닫을 때 설정 파일에 저장할 수있는 것처럼 값을 저장해야하므로 열릴 때 다시 액세스 할 수 있습니다. –

0

당신은 심지어 당신이 정상적인 파일로 읽거나 사용, 그것은 마술 액세스 권한을주지 못할 것이다 참고로 앱 2를 추가, 다른 설정 파일을 읽는 전환하는 자신의 코드를 작성할 수 있습니다 ConfigurationManager.OpenMappedExeConfiguration : http://msdn.microsoft.com/en-us/library/ms134269.aspx

0

응용 프로그램은 하나의 구성 파일 만로드합니다. 명시 적으로로드해야하는 다른 파일의 값을 읽으려는 경우입니다.

Using ConfigurationManager to load config from an arbitrary location에서이 문제에 대한 도움을 받으십시오.

+0

현재 내 app.config는 exe로 컴파일되므로 별도의 파일로 컴파일되지 않으므로 별도의 파일이 될 때까지 사용할 수 없다고 생각합니까? –

관련 문제