2011-11-15 5 views
1

저는 C# 클래스 라이브러리 (dll; .net 4.0)가 있습니다. 나는 그것을 "mytestlib"라고 부를 것이다. App.config 파일을 프로젝트에 추가하는 Settings.setting을 추가했습니다. 여기에는 몇 가지 응용 프로그램 범위 속성과 일부 사용자 범위 속성이 있습니다.어디입니까? app32.config

디버그 중에 예상되는 bin \ Debug 폴더에서 "mytestlib.dll.config"파일을 볼 수 있습니다. 그러나 MSI 설치 프로그램을 사용하여 라이브러리를 설치할 때 시스템의 "mytestlib.dll.config"를 찾지 못합니다! Microsoft는 어디에 app.dll.config를 두는가 ?? 나는 이것이 실제로 dll에 내장되어 있다고 의심하기 시작했다. (나는 그렇지 않길 바란다.)

이 DLL을 사용하는 exe 응용 프로그램이 "mytestlib.dll.config"파일의 설정을 성공적으로 가져 오기 때문에 어딘가에 있습니다. 문제는 내가 파일이 어디에 있는지 모른다.

btw, user.config를 찾을 수 있습니다.

사전에 협조 해 주셔서 감사합니다.

참고 : Windows Form applcation (exe)을 사용하여 이와 동일한 작업을 수행 한 다음 MSI 설치 프로그램을 사용하여 설치하면 app.exe.config가 .exe와 나란히 표시됩니다. app.dll.config가 같은 방식으로 작동하지 않는 이유는 무엇입니까? 사물의

+3

실제 구성 파일은 .dll이 아닌 .exe와 연결됩니다. DLL에는 자신의 .config 파일이 없습니다. 컴파일러에서 참조 용 .dll.config를 생성 할 수 있습니다 (dll로는 절대로 시도하지 않았을 수 있음). 그러나 적절한 섹션은 .exe 용 app.config에 복사해야합니다. –

+0

설치 프로그램에 포함해야 할 수도 있습니다. –

+0

MSI는 어디에서 DLL을 설치합니까? –

답변

0

설명서에 따르면 클래스 라이브러리에 대한 구성 파일 모델이 없습니다. libarary에 정의 된 app/user 설정은 실제로 라이브러리를 참조하는 exe의 app/user.config를 사용합니다. 따라서 app.dll.config는 없습니다 (설정은 dll을 참조하는 app의 app.exe.config에 있습니다).

2

커플 :

1 - 당신은 발사 * .exe.config에 관련된 설정 항목을 넣어 고려 놓아야합니다. 이것들은 DLL에 의해 적절하게 선택 될 것이다.

2 - 설치 프로그램이 conifg 파일에 대해 잘 모르는 경우가 있습니다.

3 - DLL 구성 파일은 테스트 프로젝트 및 다른 시나리오에서 사용하기 위해 만들어졌으며, 런타임에 반드시 사용해야하는 것은 아니지만 필요할 때 런타임에 배포 할 수는 있습니다.

+0

문제는 우리 DLL을 사용하는 exe가 다른 사람이 소유 한 것입니다. – cchampion

+0

@cchampion 소유권의 의미를 명확히 할 수 있습니까? config 파일에 항목을 추가하는 것이 왜 방해가됩니까? –

+0

소유하고있는 것은 다른 companys 응용 프로그램이며 소스 코드에 액세스 할 수 없음을 의미합니다. – cchampion