2013-01-18 5 views
3

처음에는 appSettings 아래 app.config 파일에 사용자 정의 설정이 저장되어있었습니다. 런타임 중에 사용자가 변경할 수있는 속성입니다. 첫 번째 문제는 App.config 파일을 덮어 쓰고 사용자가 개인 설정을 잃어 버렸을 때 ClickOnce로 응용 프로그램을 배포 할 때입니다.settings.settings 파일을 클릭하여 덮어 쓰지 마십시오.

그런 다음 ClickOnce를 사용하여 배포 할 때이 섹션이 덮어 쓰이지 않는다는 것을 인터넷에서 발견 했으므로 속성을 app.config의 settings.settings 파일 (= userettings 섹션)으로 이동했습니다. 아니, 그것은 않습니다 .. Settings.Settings의 속성은 다음과 같습니다

  • 빌드 작업 = 컨텐츠 그래서

을 복사하지 마십시오 =에

  • 복사 내 사용자의 개인 설정이 아니라는 것을 달성 할 수있는 방법 app.config 파일 또는 settings.settings 파일에서 덮어 씁니다. 아니면 다른 방법이 있습니까? 나는 잘못하고 있습니까?

    Thx!

  • 답변

    6

    이 방법은 ClickOnce를 사용하여 새 버전의 응용 프로그램을 배포 할 때 이전 설치의 설정을 복사합니다. 그래서 사용자가 만든 모든 사용자 정의 설정이 복사되어 업데이트 후에 사용 가능합니다. 나는 이것을 시험했고 그것은 나를 위해 일한다. 내 응용 프로그램에서이 코드를 포함한다

    public static void UpgradeUserSettings() 
    { 
        if (Settings.Default.upgradeRequired) 
        { 
        Settings.Default.Upgrade(); 
        Settings.Default.upgradeRequired = false; 
        Settings.Default.Save(); 
        } 
    } 
    

    ApplicationSettingsBase.Upgrade Method MSDN

    other question on StackOverflow

    +1

    , 사실 나는 응용 프로그램을 실행하기 전에 Program.cs에서이 코드를 넣어 일을하지 않았다?! –

    +0

    나는 같은 장소에서 일종의 @franchescototti입니다. 이것은 우아한 솔루션처럼 보입니다.하지만 어디에 넣어야할지 모르겠습니다 ... – RubberDuck

    관련 문제