2016-08-23 4 views
0

온라인 솔루션을 시도하고 동료를 묻는 데 많은 시간이 걸린 후 필자는 Settings.settings 것 안전하지 내 프로그램에서 구성한 설정 : 내가 (2.0.0.0로 1.0.0.0에서 AssemblyInfo.csAssemblyVersionAssemblyFileVersion을 변경어셈블리 (파일) 버전을 1.0.0.0에서 2.0.0.0으로 변경하면 설정이 새 폴더에 저장되지만 이전 폴더에서로드 됨

이 버전은 프로그램의 초이기 때문에 - 나는 MVVM에서 재 작성 몇 년 전의 구 버전에서), ... \ AppData \ local \ MyProgram \ MyProgram- {UID} \ 2.0.0.0에 설정을 저장할 새 폴더를 만들었습니다.

문제는 여전히 \ 1.0.0.0 폴더의 설정을로드한다는 것입니다.

2.0.0.0이 되려면 어떻게해야합니까? 이것은 내 프로그램으로 오랜 심리학 시간을 보냅니 까? 아니면 어떻게 든 간단하게 앞으로 나아갈 수 있습니까? 내 프로그램이 마침내 2.0.0.0으로 성장하기를 바란다.

편집 : 지금은 더 많은 정보를 원하시면

의 AssemblyInfo.cs 마지막 라인 :로드 등 여전히 업그레이드 후

[assembly: AssemblyVersion("2.0.0.0")] 
[assembly: AssemblyFileVersion("2.0.0.0")] 

는 두 번째 폴더가 생성됩니다 및 설정은 user.settings에 저장받을 만 (Settings.Upgrade())를 1.0.0.0/user.settings에서 가져옵니다.

Folders after AssemblyVersion upgrade

+0

문제점을 재현 할 수 없습니다. VS2015 -> 새 프로젝트 -> 설정을 저장하고 다시로드하면 작동합니다. AssemblyVersion 및 AssemblyFileVersion을 변경하면 설정이 기본값으로 되돌아갑니다. 예상대로 작동합니다. – Fruchtzwerg

+0

여기 내 버전 : VS2015 -> 설정 저장 ->로드 작업; 사용자 정의 설정을 저장하십시오. -> 2.0.0.0으로 어셈블리 버전 업그레이드 -> 시작 -> 저장된 설정로드 -> 설정 변경 -> 닫기 + 저장 설정 -> 재시작 -> 1.0.0.0의 설정을 다시로드합니다. – Squirrelkiller

+0

또한 "Fruchtzwerg"는 프로그램이 성장하는 데 도움이되도록 완벽해야합니다. : D – Squirrelkiller

답변

1

당신은 당신이 그렇지 않으면 당신은 계속해서 이전 버전의 설정을 덮어 쓰기하는 새 버전의 응용 프로그램을 시작할 때 한 번만 Settings.Upgrade()를 호출해야합니다.

Upgrade()을 호출 할 때 설정 한 user.config에 플래그를 추가해야합니다.

+0

Sooooo는 지금이 권리를 이해합니까? Upgrade()는 설정을 실제로로드하지 않지만 이전 버전 (예 : 1.0.0.0)에서 설정을 가져 와서 새 버전 (예 : 2.0.0.0)으로 가져옵니다. 응용 프로그램 시작시로드 할 설정이 필요합니까? – Squirrelkiller

+0

예, Upgrade()는 이전 설정 및 가져 오기를로드합니다. 아니요, 자동으로로드되어야합니다. 그러나 새 user.config 파일이 디스크에서 업데이트되도록 Settings.Save()를 호출해야합니다. – toadflakz

+0

감사합니다! 방금 배웠던 몇 가지 : D – Squirrelkiller