카테고리 보관물: C#

C#

Properties.Settings.Default는 어디에 저장됩니까? 값을 편집 한 후

나는 이것을 알고 있다고 생각했지만 오늘 나는 다시 틀렸다.

VS2008, .NET 3.5 및 C #을 실행합니다. 속성 설정 탭에 사용자 설정을 기본값으로 추가 한 후이 코드를 사용하여 읽습니다.

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

그런 다음 사용자가 옵션 대화 상자에서 값을 편집 한 후 다음과 같이 저장합니다.

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

내 질문은,이 새로운 가치는 어디에 저장됩니까? 실행 파일 디렉토리의 MyApp.exe.config 파일은 업데이트되지 않으며 여전히 기본값을 포함합니다. 또한 내가 알 수있는 한 해당 디렉토리의 다른 파일 중 어느 것도 업데이트되지 않습니다! 그러나 프로그램이 값을 다시 읽으면 변경된 값을 가져 와서 어딘가에 저장된 것을 알고 있습니다 …

이것은 단지 학문적이지 않으며 오늘 아침에 수동으로 값을 편집 할 수 있어야하고 변화하는 것을 찾을 수 없을 때 스스로 혼란에 빠졌습니다.



답변

Program Files 폴더에 기본적으로 만 허용 읽기 권한의 윈도우 ‘정책의 최신 버전으로 작업하기 위해, 응용 프로그램에서 폴더 [설정해야합니다 (당신 UAC와 권한 상승 프롬프트하지만, 다른 주제 …의 그 않는 한) %userprofile%\appdata\local또는 %userprofile%\Local Settings\Application Data사용자 별 설정에 따라 실행중인 Windows 버전에 따라 다릅니다. 모든 사용자에 대한 설정을 저장하면 해당 사용자 는 해당 폴더 아래 C:\users또는 C:\Documents and Settings모든 사용자 프로필 (예 :)에있게 C:\users\public\appdata\local됩니다.


답변

프로그래밍 방식으로 경로를 얻을 수 있습니다.

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

답변

올바른 방향으로 나를 가리켜 주셔서 감사합니다. c. \ users \ USER \ AppData \ Local \ COMPANY \ APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH \ VERSION \ user.config에있는 user.config를 찾았습니다.

내 응용 프로그램에서 버전을 uprev해야했고 모든 설정이 사라진 것 같습니다. 응용 프로그램은 새 버전으로 새 폴더를 만들고 기본 설정을 사용했습니다. 파일이 저장된 위치를 찾는 데는 시간이 걸리지 않았지만 설정을 새 버전으로 가져 오는 간단한 복사 및 붙여 넣기였습니다.


답변

그것은 당신의 문서 및 설정 \ % 사용자 % \ 로컬 설정 \ 응용 프로그램 데이터 …… 등등라는 파일을 검색에 저장됩니다 user.config

그러나 위치는 변경 될 수 있습니다.


답변

내 Windows 서비스 중 하나가 Windows Server 2016에서 로컬 시스템으로 로그온했으며 C : \ Windows \ SysWOW64 \ config \ systemprofile \ AppData \ Local \ {your application name}에서 user.config를 찾을 수 있습니다.

가장 쉬운 방법은 C 드라이브에서 응용 프로그램 이름을 검색 한 다음 user.config가 어디에 있는지 확인하는 것입니다.


답변

사용자 별 설정은 해당 응용 프로그램의 사용자 응용 프로그램 데이터 폴더에 저장됩니다. user.config파일을 찾으십시오 .

사용자가 종종 실행 디렉토리에 대한 쓰기 권한이 없기 때문에 예상 한 바를 모르겠습니다.


답변

그들은에 저장된 YOUR_APP.exe.config파일이와 같은 폴더에 저장, YOUR_APP.exe파일, <userSettings>섹션 :

   <userSettings>
      <ShowGitlabIssues.Properties.Settings>
         <setting name="SavedUserName" serializeAs="String">
            <value />
         </setting>
         <setting name="SavedPassword" serializeAs="String">
            <value />
         </setting>
         <setting name="CheckSave" serializeAs="String">
            <value>False</value>
         </setting>
      </ShowGitlabIssues.Properties.Settings>
   </userSettings>

여기에 CSS 코드가 있습니다 :

public void LoadInfoLogin()
{
    if (Properties.Settings.Default.CheckSave)// chkRemember.Checked)
    {
        txtUsername.Text = Properties.Settings.Default.SaveUserName;
        txtPassword.Text = Properties.Settings.Default.SavePassword;
        chkRemember.Checked = true;
    }
...