2012-03-01 4 views
1

다음 구문을 사용하여 appSettings에 액세스하려고하고 있으며 많은 웹 사이트 프로젝트에서는 사용했지만 클래스 라이브러리 프로젝트에서는 사용하지 않았습니다. 이 클래스 라이브러리 프로젝트에서 나는 심지어 AppSettings 키에 액세스 할 수 없습니다. 내 수업에서 AppSettings 키에 액세스 할 수있는 방법이 있습니까? 클래스 라이브러리 프로젝트의 app.config 또는 프로젝트 구조가 다른 방식으로 동작합니까?클래스 라이브러리 프로젝트의 App.Config에서 AppSettings에 액세스 할 수 없습니다.

Dim SharedDrive As String = ConfigurationManager.AppSettings("scriptsfolder") 

<configuration> 
    <appSettings> 
    <add key="scriptsfolder" value="C:\BadTempScripts"/> 
    </appSettings> 

이미 프로젝트 참조가 System.Configuration에 추가되었으며 클래스에 가져 왔습니다. 내 코드를 실행할 때 "개체가 개체의 인스턴스로 설정되지 않았습니다"라고 표시됩니다.

+0

- "스크립트" 및 "scriptsFolder" – Ray

+0

그 변경된 것으로 나타났습니다 있지만 오류가 동일하게 유지됩니다. 나는 다른 옵션을 시도하고 곧 업데이 트됩니다. 감사. – Mitul

답변

5

라이브러리는 자체가 아닌 응용 프로그램의 컨텍스트에서 실행됩니다.

라이브러리를 사용할 응용 프로그램의 파일 .config에 구성을 입력해야합니다.

라이브러리가 lib.dll이고 응용 프로그램이 myApp.exe 인 경우 .config 파일 myApp.exe.config을 사용해야합니다.

.config 파일을 사용하는 대신 라이브러리 유형에 대한 종속성으로 구성을 전달하는 것이 좋습니다.


당신은 당신은 당신의 구성이 키 scriptsfolder있는 키 Scripts를 호출하려고하는 점에서, 코드의 특정 버그가 있습니다.

+0

내 코드에서 이름을 변경했습니다. – Mitul

+0

@Mitul - .config 파일 이름은 무엇입니까? – Oded

+0

혼란은 이것입니다. 내 수업 도서관 프로젝트 중 하나에서 완벽하게 작동합니다. 같은 줄의 코드는 잘 작동하지만이 프로젝트에서는 그렇지 않습니다. 왜 그리고 둘 다 클래스 라이브러리 프로젝트인지 모르겠다. 두 프로젝트가 나란히 있습니다. – Mitul

1

동일한 문제가 있었고 Oded가 말한 것처럼 라이브러리를 응용 프로그램의 컨텍스트에서 실행했지만 문제를 해결할 수 없었습니다. 결국이 코드 사용 :

Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath); 
Dim k as KeyValueConfigurationElement = config.AppSettings.Settings 
("SVCInstalled") 
If k <> Nothing Then 
If k.Value <> Nothing Then 
' Process your data next 

주, 나는 C#을에서 번역 온 - 더 - 플라이, 그래서 뭔가 잘못되면 실례 해요 당신이 두 개의 서로 다른 키 이름 사용

관련 문제