2009-05-28 6 views
1

.NET 2의 설정 기능을 사용하는 WinForms 응용 프로그램이 있지만 응용 프로그램에 저장된 사용자 범위 설정 값이 종종 Settings 클래스에 저장된 기본값으로 대체됩니다. 오래 전에 저는 자동 증가하는 빌드 번호를이 어딘가에 찾았습니다. 그리고 이것이 사실이라고 생각합니다. 그러나, 그 지침은 다음과 같은 코드를 제안했지만 어쨌든 나의 설정은 여전히 ​​리셋되고있다.사용자 범위 응용 프로그램 설정이 항상 기본값으로 재설정

나는이 문제보다 더 깊숙이 들어가기 위해 다른 많은 문제를 해결하고 있습니다. 질문을 통해 누군가가 저를 도울 수 있는지, 그리고이 문제를 가진 다른 사람들을 볼 수 있다고 생각했습니다.

private void Form1_Load(object sender, EventArgs e) 
    { 
     UpgradeSettings(); 
     GetSettings(); 
    } 

    private void UpgradeSettings() 
    { 
     if (Properties.Settings.Default.CallUpgrade) 
     { 
      Properties.Settings.Default.Upgrade(); 
      Properties.Settings.Default.CallUpgrade = false; 
     } 
    } 
+0

Properties.Settings.Default.Save()도 호출하면 안됩니까? –

답변

1

다음과 같이 UpgradeSettings를 수정해야합니다. CallUpgrade의 초기 값은 true이어야합니다 (사용자 설정에서).

private void Form1_Load(object sender, EventArgs e) 
{ 
    UpgradeSettings(); 
    GetSettings(); 
} 

private void UpgradeSettings() 
{ 
    if (Properties.Settings.Default.CallUpgrade) 
    { 
     Properties.Settings.Default.Upgrade(); 
     Properties.Settings.Default.Reload(); // to activate the settings 
     Properties.Settings.Default.CallUpgrade = false; 
     Properties.Settings.Default.Save();// to save the new value of CallUpgrade    
    } 
} 
0

CallUpgrade의 기본값은 true입니까? Upgrade()를 호출하면 빌드 번호 전체에서 설정을 마이그레이션해야합니다.

다른 접근법은 고정 된 빌드 번호를 사용하는 것입니다. 필요에 따라 AssemblyInfo.cs를 수동으로 수정할 수 있습니다.

관련 문제