2016-06-14 5 views
0

꽤 많은 설정 (.settings 파일)이있는 Winforms 앱이 있습니다. 이것들은 (내가 알 수있는 한) C:\Users\[User's username]\AppData\Local\[My program name]\[Build or something]\1.0.0.0\user.config에 저장되지만 새로운 빌드를 만들고 사용자가 해당 버전을 실행할 때마다 새로운 [Build or something] 폴더를 만들고 "새로운 설정"으로 다시 시작합니다. 이전 버전의 설정을 롤오버하는 가장 좋은 방법은 무엇입니까?이전 버전의 설정 가져 오기

나는이 게시물에 기술 된 방법을 사용하고

+0

설정 내용을 단일 .Config 파일로 이식 할 수 있습니까? – MethodMan

답변

3

을 (일부 설정은 내가 "새로운 브랜드"새 버전이 실행될 때마다 나는 마지막 버전에서 복사 할 일부 설정되고 싶어) (가 말한다 Clickonce하지만 다른 유형의 앱에도 적용 가능) : https://blogs.msdn.microsoft.com/rprabhu/2005/06/29/client-settings-faq/

Q : 그래,하지만 언제 업그레이드를 호출해야하는지 어떻게 알 수 있습니까?

답 : 좋은 질문입니다. Clickonce에서 응용 프로그램의 새 버전을 설치하면 ApplicationSettingsBase가이를 감지하고 설정이로드 된 시점에 자동으로 설정을 업그레이드합니다. Clickonce 이외의 경우에는 자동 업그레이드가 없습니다. 직접 업그레이드를 호출해야합니다. 다음은 업그레이드를 호출 할시기를 결정하는 한 가지 아이디어입니다.

CallUpgrade라는 부울 설정이 있고 기본값 인 true를 지정합니다.()이 업그레이드를 보장합니다

if (Properties.Settings.Default.CallUpgrade) { 
     Properties.Settings.Default.Upgrade(); 
     Properties.Settings.Default.CallUpgrade = false; 
    } 

이 새 버전이 배포 된 후 응용 프로그램이 실행되는 첫 번째 시간이라고 : 앱이 시작되면, 당신은 뭔가를 할 수 있습니다.

+0

예, 또한 프로그램에 "checkFirstRun()"메소드가 있습니다. 나는 그것을 거기에 넣을 수있다. 이제, 몇 가지 질문이 있습니다 :'Properties.Settings.Default.Upgrade();를 호출하면 모든 설정이 업그레이드됩니까? 최신 버전의 설정이 이전 버전보다 많은 경우 그대로 유지됩니까? – derekantrican

+0

post는 "ApplicationSettingsBase.Upgrade()를 호출하면 클래스의 현재 버전과 일치하는 이전 버전의 설정을 검색하고 현재 버전의 user.config 파일에 저장합니다." 그래서 새 설정 손길이 닿지 않을 것이다. – vmg