2010-03-25 5 views
11

가 저장됩니다 .NET 사용자 설정 위치를 변경하는 방법 : 나는 응용 프로그램 디렉토리에이 경로를 변경할 수있는 방법 C:\Documents and Settings\\Local Settings\Application Data\<Project Name> 기본 설정으로

. 나는 또한 다른 사용자를 위해 다른 파일을 갖고 싶지 않습니다. 어떻게 설정을 글로벌하게 만드십니까?

설정의 범위를 "응용 프로그램"으로 변경하려고 시도했지만 런타임에 변경할 수 없습니다.

답변

13

Using the default built-in behavior you can't!

Q : 왜 경로가 너무 불분명? 을 변경/사용자 정의 할 수있는 방법이 있습니까?

A : 경로 구성 알고리즘은 보안, 고립과 안정성 측면에서 특정 엄격한 요구 사항을 충족해야합니다. 우리 친절의 사용 함으로써 쉽게 검색 할 가능한을 경로를 만들려고하지만, 응용 프로그램이 다른 응용 프로그램과의 충돌 같은 문제로 실행 없이 에게 완전히 간단한 경로를 유지하는 것은 불가능하다, 문자열을 공급 스푸핑

LocalFileSettingsProvider는 의 파일을 변경하는 방법을 제공하지 않으므로 설정이 저장됩니다. 제공자 자체가 구성 파일 위치를 첫 번째 위치에 결정하지 않습니다. 이는 구성 시스템입니다. 어떤 이유로 든 설정을 의 다른 위치에 저장해야하는 경우 자신의 SettingsProvider를 작성하는 것이 좋습니다. 이 은 매우 간단하게 구현할 수 있으며 은이를 수행하는 방법을 보여주는 .NET 2.0 SDK 에서 샘플을 찾을 수 있습니다. 을 염두에 둬야합니다. 위에서 언급 한 동일한 격리 문제가 발생할 수 있습니다. 나는 로버트 하비의 대답에 동의

는 그것을 or write a custom settings provider.

+8

를 구축 사용하는 것을 선호합니다 ... –

1

언제든지 자신의 XML configuration files을 읽고 쓸 수 있습니다.

+4

네 자신을 할 수 있지만이 단지 야 짜증 메커니즘 – mack369

0

모든 사용자에 대해 프로그래밍 방식으로 설정을 변경하는 데 어려움이 있습니다 (일반적으로 Program Files에 있으며 따라서 최신 OS에서 쓰기 액세스로부터 보호되는 exe.config 파일에 있기 때문에). 응용 프로그램 전체에서 설정을 시도해 볼 수 있지만 this question의 솔루션과 마찬가지로 ConfigurationManager을 사용하여 구성 파일을 엉망으로 만들 수 있습니다.

관련 문제