윈폼 프로그램에서 필요한 정보를 사용자 설정(Properties.Settings.Default)에 저장하여 프로그램 종료 후에도 사용할 수 있도록 합니다.
손쉽게 정보들을 사용자 설정에 저장하여 사용할 수 있는데, 프로그램이 업데이트(버전 정보 변경)되면 이러한 정보들이 초기화 된다는 문제점이 있습니다.
예를 들어 S/W 라이선스 키를 받아 사용자 환경 설정에 저장하여 사용하고 있다가 프로그램이 업데이트되어 재 설치하면 라이선스 키가 초기화가 되어 라이선스 키를 다시 받아야 합니다.
이러한 원인은 사용자 설정 파일이 어셈블리\버전별로 관리되고 있기 때문입니다.
버전 이름의 폴더 안의 user.config 파일에 사용자 설정 데이타가 저장됩니다.
따라서 새로운 프로그램을 설치하면 버전이 변경되기 때문에 기존 데이터를 잃어 버리게 됩니다.
이를 방지하기 위해서 프로그램에서 사용자 설정 데이터에 접근하기 전에 데이터 유효성을 검사하여 데이터가 초기화되었다면 업그레이드를 통해 기존 데이터를 가져와야 합니다.
위는 라이선스 키가 비어 있다면 기존 라이선스 키로 복원하는 코드입니다.
프로그램 업그레이드 후에 사용자 설정 데이터가 초기화된다면 위 코드를 적용하여 문제를 해결할 수 있습니다.
참조 링크 : https://www.arclab.com/en/kb/csharp/save-and-restore-position-size-windows-forms-application.html
손쉽게 정보들을 사용자 설정에 저장하여 사용할 수 있는데, 프로그램이 업데이트(버전 정보 변경)되면 이러한 정보들이 초기화 된다는 문제점이 있습니다.
예를 들어 S/W 라이선스 키를 받아 사용자 환경 설정에 저장하여 사용하고 있다가 프로그램이 업데이트되어 재 설치하면 라이선스 키가 초기화가 되어 라이선스 키를 다시 받아야 합니다.
이러한 원인은 사용자 설정 파일이 어셈블리\버전별로 관리되고 있기 때문입니다.
버전 이름의 폴더 안의 user.config 파일에 사용자 설정 데이타가 저장됩니다.
따라서 새로운 프로그램을 설치하면 버전이 변경되기 때문에 기존 데이터를 잃어 버리게 됩니다.
이를 방지하기 위해서 프로그램에서 사용자 설정 데이터에 접근하기 전에 데이터 유효성을 검사하여 데이터가 초기화되었다면 업그레이드를 통해 기존 데이터를 가져와야 합니다.
1 2 3 4 5 6 | #region 프로그램 업데이트 후 기존 설정값을 유지하도록 함 if (Properties.Settings.Default.x_auth_token.Equals(string.Empty)) { Properties.Settings.Default.Upgrade(); } #endregion | cs |
프로그램 업그레이드 후에 사용자 설정 데이터가 초기화된다면 위 코드를 적용하여 문제를 해결할 수 있습니다.
참조 링크 : https://www.arclab.com/en/kb/csharp/save-and-restore-position-size-windows-forms-application.html
댓글
댓글 쓰기