2009-06-17 5 views
6

This questionConfigurationManagerapp.config에서 사용자 지정 구성 섹션을 사용하고 있다는 것을 제외하고 정확하게 문제를 설명합니다.ConfigurationManager를 사용하여 ClickOnce 업데이트를 통해 app.config를 유지하는 방법은 무엇입니까?

기본적으로 내 문제는 ClickOnce가 응용 프로그램을 업데이트 할 때, 새 app.config와 다른 디렉토리에 설치되므로 변경 사항이 지워집니다. 내 응용 프로그램은 응용 프로그램 설정을 유지하기 위해 app.config를 사용하므로 매우 나쁘다 ... 병합 된 업데이트가 우수 할 것입니다 (다른 질문에서와 비슷 함). 그러나 자동화 된 부분에 대해서는이 시점에서 좋을 것입니다.

아니면 그냥 기본 위치를 사용하지 말고 app.config 파일에 설정된 위치를 사용해야합니까?

답변

2

ClickOnce는 업데이트 사이에 사용자 설정을 유지해야하지만 알 수없는 이유로이 오류가 한 두 번 실패했습니다. 사용자 지정 구성 설정을 시도하지는 않았지만 설정을 덮어 쓰지 않는 ClickOnce의 기능에 대한 자신감을 잃었습니다.

내가 사용하려는 접근법은 앱을 허용하기보다는 ClickOnce 업데이트를 수동으로 처리하는 것입니다. 업데이트를 확인하고 사용자에게 설치하라는 메시지를 표시합니다. 또한 업데이트를 수락하지 않은 사용자가 두 명 있었는데 복구가 어려웠습니다. 수동으로 업데이트를 처리하면 업데이트하기 전에 메모리에 사용자 설정을 읽어 들이고 업데이트가 완료된 후 다시 쓸 수 있기를 바랍니다. 이 목적에 부합하는 ApplicationUpdated 이벤트가 있습니다.

아마도이 접근법이 도움이 될 것입니다.

은 참조를 추가 편집 :

이 ApplicationDeployment도 도움이 될 것입니다에 대한 인터넷 검색.

+0

어디에서이 ApplicationUpdated 이벤트가 있습니까? 객체 브라우저에서도 찾을 수 없습니다. (물론 ClickOnce 대화 상자가 마음에 들지 않지만 문제는 해결되지 않았습니다.) 업데이트는 새 디렉토리에 계속 설치되므로 오래된 app.config가 손실되었습니다. –

+0

re : ApplicationSettingsBase에 대한 두 번째 링크는 ConfigurationSection에서 상속 받았기 때문에 이것이 나를위한 옵션이 아닙니까? –

+0

Deployment.Application.ApplicationDeployment 클래스를 살펴보십시오. ApplicationUpdated 이벤트를 언급했을 때 샘플 코드를보고 있다고 생각합니다. 나는 오래된 app.config가 손실되었음을 알고, 내 생각은 현재 설정에서 사용자 설정을 읽고, 새로운 설정에 사용자 설정을 기록한다. –

1

가능한 경우 Settings.settings (프로젝트의 Properties 아래에 있음)를 사용하여 고객 구성을 저장하십시오.

ClickOnce는 자동으로 사용자 설정을 병합하므로 아무 걱정할 필요가 없습니다. 자세한 내용은 다음을 참조하십시오. http://www.dotnetperls.com/settings-visual-studio

관련 문제