2011-12-06 2 views
1

다른 프로젝트 MyDLL.dll을 참조하는 MainApp 응용 프로그램이 있습니다. MyDLL 프로젝트 내에서 런타임에 변경 될 수있는 Settings.settings 파일의 일부 사용자 설정을 만들었습니다. 따라서이 설정은 MyDLLapp.config 파일에 저장됩니다. 그러나 문제는, 주 프로젝트가 MainApp이고, MyDLL.dll.config은 지금까지 볼 수 있듯이 MainApp 출력 폴더에 복사됩니다. 이것은 MyDLL 코드의 설정을 저장하더라도 다음 번에 MainApp을 실행하면 설정이 기본값으로 되돌아 간다는 사실에 반영됩니다.참조 된 어셈블리에서 앱 설정을 보존하는 방법은 무엇입니까?

여기서 분명히 분명한 뭔가를 놓치고 있어야합니다. 관련 어셈블리가 설정 값을 유지할 수있는 방법이 있어야합니다. 그러나 어떻게?

+0

@ user978511 -'Settings.Default.Save()'. 그러나 당신은 확인하는 것이 맞습니다. ;) –

+0

아니요,'Settings.settings' 파일을 사용하고 있습니다. 미안하지만, 나는 그 질문을 명확하게해야했다. 편집 할 것이다. –

답변

3

app.config을 라이브러리 프로젝트에 추가 할 수는 있지만 효과가 없습니다. 구성은 라이브러리가 아닌 응용 프로그램에 링크됩니다.

응용 프로그램 자체에서 설정 및 구성을 만들어야합니다. 당신이 정말로 원한다면 도서관의 app.config을 포함하는 것을 할 수 있지만, 그것은 당신이 원하는 것을하지 않을 수도 있습니다. 응용 프로그램에서 구성을 처리하는 것이 가장 좋습니다.

왜 이렇게됩니까? 첫 번째 장소에서 라이브러리에 대한 사용자 설정을하는 것이 유효하다고 말하는 것은 무엇입니까? 도서관은 특정 종류의 신청서에 묶여서는 안됩니다. Windows 서비스 또는 ASP.NET 응용 프로그램에서 사용하면 어떻습니까?

+0

좋습니다, 공정한 지적입니다. 그러나 제 특정한 상황에서는 그것이 정당하다고 생각합니다. 'MainApp'는 WinForms exe이고'MyDLL'은 양식 라이브러리입니다. 복원하려는 설정은'MyDLL'에 정의 된 특정 격자의 열 너비와 관련됩니다. 사용자의 환경 설정을 저장하고 싶습니다. 코드가'MyDLL'에 있기 때문에 저장하는 것도 의미가 있으며'MyDLL'에서 호출하는 앱의 설정에 접근해야합니다. 필요하다면'MainApp'에서 청취자를 넣어서 칼럼 resizings을 잡아 거기에 저장할 수 있습니다 ...하지만 나는 그걸로 들어가고 싶지 않았습니다. –

+1

나는 그것이 당신이 의미하는 바가 정당하다는 것을 확신합니다 * 하지만 .NET 구성 (및 설정)이 원하는대로 작동하지 않는다는 사실은 변경되지 않았습니다. 응용 프로그램 설정은 라이브러리가 아닌 응용 프로그램에 대한 설정입니다. –

관련 문제