2011-02-04 4 views
0

설정을 활용하는 Windows 앱이 있습니다. 사용자가 수동으로 설정할 수있는 몇 가지 사용자 설정이 있습니다.이 설정은 사용자 범위로 설정됩니다. save 메서드는 제대로 작동하지만 응용 프로그램을 닫았다가 다시 열면 값이 기본값으로 다시 설정됩니다. 내 코드의 한 예는 여기속성 설정 저장이 제대로 작동하지 않습니다.

를 저장하는 것입니다 :

Properties.Settings.Default["LocalDefaultPrinter"] = Default_Printer; 
Properties.Settings.Default.Save(); 

어떤 문제가 될 수 있을까?

+0

어셈블리와 동일한 디렉토리에'* .config' 파일이 생성됩니까? –

+0

그리고이 속성은 응용 프로그램 또는 사용자로 범위가 있습니까? – RQDQ

+1

나는 내 원본에 명시된 바와 같이 사용자 범위 – mattgcon

답변

1

모두를 괴롭히지 마세요. 나는 사용자가 프린터를 설정 한 것이 시스템 설정 프린터와 같은지 확인한 다음 시스템 프린터로 변경하지 않았는지 확인하는 코드의 메소드를 잊어 버렸다. 그 방법을 끄집어 내고 모든 것이 잘되었습니다.

3

나는이 문제가 있는지 확실하지 않습니다,하지만 난 디자이너 생성 된 속성을 사용하여 그 일을하는 데 사용 해요 :

Properties.Settings.Default.LocalDefaultPrinter = Default_Printer; 
Properties.Settings.Default.Save(); 

편집 : 글쎄, 그건 문제가 아니다 - 나는 할 수 있었다 귀하의 접근 방식을 사용하여 벌금을 저장하려면 "사용자"범위가 설정되어 있어야합니다. 그러나 이것을 '응용 프로그램'으로 범위 지정하면 application.config 파일에 저장되므로 값을 저장할 수 없습니다 (응용 프로그램 속성은 .Save의 해당 파일에 다시 저장되지 않습니다).

2

프로그래밍 방식으로 사용자 설정을 변경하면 응용 프로그램 구성 파일이 변경되지 않습니다. 런타임에 응용 프로그램 구성과 병합되는 사용자 프로필에서 해당 설정의 복사본을 변경하고 있습니다.

변경된 설정에 대한 사용자 프로필 폴더를 확인 했습니까? 거기 있니? 그렇다면 코드가 제대로 작동하고 있습니다.

감사합니다. -Jason

+0

Jason. . . 이 팁을 주셔서 대단히 감사합니다. 그것은 내가 지금 며칠 동안 찾고 있었던 수수께끼를 해결했습니다. 내가 할 수 있다면 +20. – dscarr

0

응용 프로그램 범위 설정은 읽기 전용이지만 사용자 범위 설정은 읽기/쓰기입니다. Save()을 호출하면 응용 프로그램 세션간에 사용자 범위 설정이 유지됩니다. LocalDefaultPrinter이 응용 프로그램 범위 인 경우 세션간에 지속되지 않습니다.

This post은 설정을 전체적으로 사용하는 방법에 대한 정보를 제공합니다.

2

이러한 가능성 외에도 사용자 설정은 실행 파일의 버전 번호에 적용됩니다. 따라서 디버깅 중에 빌드 번호를 자동으로 증가 시키거나 빌드 번호를 변경하면 이전 버전의 응용 프로그램에 의해 이미 업데이트 된 설정이 손실됩니다.

0

사용자 설정에서 하나의 특정 키와 비슷한 문제가 발생했습니다. 이 문제를 해결하기 위해 키를 삭제하고 다시 추가하려고했습니다. 최종 솔루션, 새로운 이름으로 새 키를 추가했습니다. 벙어리 솔루션이지만 효과가있었습니다.

2

WPF에서 문제가있는 사람에게 적합합니다.

저장 한 설정을 사용하려면 기본값이 아닌 값을 검색하려면 Settings.Default.Upgrade()으로 전화하십시오.

관련 문제