2010-12-23 4 views
1

응용 프로그램 환경 설정을 저장하는 가장 좋은 곳은 어디입니까?응용 프로그램 환경 설정 저장 ... registry/file?

특히 볼륨 레벨 등과 같은 미디어 플레이어의 환경 설정을 저장하고 싶습니다. 두 후보가 마음에 봄 ... 파일과 레지스트리. 어느 것이 더 적절한가?

다음과 같이 애플리케이션 별 설정을 만드는 데 도움이되는 API가 있는지 궁금해합니다.

내가 잘못 입력했다는 메시지가 표시되지 않는 한, HKCU... or HKLM/Software/MyCompanyName/MyAppName/Key 또는 %APPDATA\MyCompanyName\MyAppName\someTypeOfSettingsFile에 물건을 저장하고 싶습니다.

이러한 설정은 일반적으로 이러한 설정에 사용되는 것으로 보이므로 .NET에서는이 위치에 설정을 저장하기가 쉽습니다. 닷넷이이 일반적인 위치에 설정을 읽고 쓸 수있는 간단한 높은 수준의 API가 있습니까?

+0

http://stackoverflow.com/questions/744746/best-way-to-save-per-user-options-in-c – kenny

답변

5

Visual Studio 솔루션에 settings.settings을 엽니 다. 애플리케이션 설정을 추가합니다 (예 : '사용자'에서 '애플리케이션'으로 범위 변경).

IDE는 코드에서 사용할 수있는 백업 클래스를 만듭니다.

  • Application Settings Architecture

  • 레지스트리

  • Using Application Settings and User Settings

  • Application Settings Overview

    Application Settings

    • 피해야한다.

      app.exe.config 및 user.config 파일의 위치는 응용 프로그램 설치 방법 에 따라 달라집니다. 로컬 컴퓨터에 복사 Windows Forms 기반 응용 프로그램 를 들어, app.exe.config는 응용 프로그램의 주 실행 파일, 의 기본 디렉토리와 같은 디렉토리에 상주하고 user.config는 에 상주 위치는 Application.LocalUserAppDataPath 속성으로 지정됩니다. ClickOnce를 통해 을 설치 한 응용 프로그램의 경우 파일은 % InstallRoot % \ Documents 및 Settings \ username \ Local Settings 아래의 ClickOnce 데이터 디렉터리에 있습니다.

    +0

    답장을 보내 주셔서 감사합니다. 그래서 이것은 응용 프로그램 .config 파일에 저장됩니까? 그리고 이것은 사용자 프로그램/프로그램 파일 폴더에 저장됩니까? 그리고 이것은 신뢰할 수 있습니까?나는이 사각형이 사용자가 특정 위치에 대한 쓰기 권한이 없을 수도 있다는 생각을 이해할 수 없기 때문에 혼란 스럽다. 내가 이해하지 못하는게 뭐야? – spender

    +3

    이 파일은 모든 사용자가 쓰기 권한이있는 사용자의 응용 프로그램 데이터 폴더에서 호스팅 할 수 있습니다. 사용자 구성에 대해 아무 것도 가정 할 필요가 없으며 .net 프레임 워크가이를 처리합니다. – Blindy

    +0

    좋아요. 그때 가면 좋다. 감사. – spender

    1

    Application Settings for Windows Forms을 참조하십시오. Windows Forms에 관한 내용이지만 다른 유사한 응용 프로그램에도 사용할 수 있습니다.

    아주 좋은 이유없이 레지스트리를 사용하지 마십시오.

    +0

    왜 레지스트리 나쁜 형식을 사용하고 있습니까? – spender

    +2

    누가 하나의 응용 프로그램에 대해 모든 "레지스트리"쓰레기를 처리하려고하기 때문에? 왜 응용 프로그램 설정을 보려면 프로그램 (레지스트리 뷰어)에 들어가야합니까? –

    +0

    단일 용도로 John S와 동의하십시오. 그러나 다른 한편으로는, 설정이 앱 또는 사용자간에 공유되는 시나리오에서 레지스트리를 사용하는 좋은 이유 중 하나는 각 레지스트리 키가 자체 ACL을 가질 수 있기 때문에 세분화 된 보안 모델이 가능하다는 것입니다. 구성 파일은 모두 또는 아무것도 아닙니다. –

    관련 문제