답변:
선택한 설정이 "사용자"범위인지 "응용 프로그램"범위인지에 따라 다릅니다.
사용자 범위 설정은
C : \ Documents and Settings \ 사용자 이름 \ Local Settings \ Application Data \ ApplicationName
런타임에 읽고 쓸 수 있습니다.
Vista 및 Windows 7의 경우 폴더는
C : \ Users \ 사용자 이름 \ AppData \ Local \ ApplicationName
또는
C : \ Users \ 사용자 이름 \ AppData \ Roaming \ ApplicationName
애플리케이션 범위 설정은에 저장 AppName.exe.config
되며 런타임시 읽기 전용입니다.
다음은 user.config 파일 위치를 프로그래밍 방식으로 가져 오는 데 사용할 수있는 스 니펫입니다.
public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
try
{
var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
return UserConfig.FilePath;
}
catch (ConfigurationException e)
{
return e.Filename;
}
}
ApplicationSettings (예 : settings.settings)는 기본적으로 사용자 설정에 PerUserRoamingAndLocal을 사용합니다 (내가 기억 한대로).
업데이트 : 이상하지만 여기에 오답이 너무 많습니다. 사용자 범위 설정 파일 (user.config)을 찾는 경우 다음 폴더 (Windows XP의 경우)에 있습니다.
C : \ Documents and Settings \ (사용자 이름) \ Local Settings \ Application Data \ (company-name-if-exists) \ (앱 이름) .exe_ (Url | StrongName) _ (해시) \ (앱 버전) \
Url 또는 StrongName은 애플리케이션 어셈블리 강력한 이름 여부에 따라 다릅니다.
웹 애플리케이션이 아닌 데스크톱에 대해 이야기한다고 가정합니다.
프로젝트에 설정을 추가하면 VS는 app.config
프로젝트 디렉터리에 이름이 지정된 파일을 만들고 해당 파일 에 설정을 저장합니다. 또한 Settings.cs
개별 설정에 대한 정적 접근자를 제공 하는 파일을 빌드합니다 .
컴파일 타임에 VS는 (기본적으로 이것을 변경할 수 있습니다) app.config
를 빌드 디렉터리에 복사 하여 실행 파일과 일치하도록 이름을 변경합니다 (예 : 실행 파일 이름 foo.exe
이이면 파일 foo.exe.config
이름이. NET 구성 관리자는 런타임에 설정을 검색하는시기를 찾습니다.
VS 설정 편집기를 통해 설정을 변경하면 app.config
및 Settings.cs
. (에서 생성 된 코드의 속성 접근 Settings.cs
자를 보면 app.config
파일 에있는 설정의 기본값을 포함하는 속성으로 표시되어 있음을 알 수 있습니다.) app.config
파일을 직접 편집하여 설정을 변경하는 경우 , Settings.cs
업데이트되지 않지만 새 값은 컴파일 타임에 app.config
복사 되기 때문에 프로그램을 실행할 때 프로그램에서 계속 사용됩니다 foo.exe.config
. 이 기능을 끄면 (파일 속성 설정) foo.exe.config
빌드 디렉토리에서 파일 을 직접 편집하여 설정을 변경할 수 있습니다 .
그런 다음 사용자 범위 설정이 있습니다.
응용 프로그램 범위 설정은 읽기 전용입니다. 프로그램은 사용자 범위 설정을 수정하고 저장할 수 있으므로 각 사용자가 자신의 설정을 가질 수 있습니다. 이러한 설정은 foo.exe.config
파일에 저장되지 않습니다 (최소한 Vista에서는 프로그램이 Program Files
권한 상승없이의 하위 디렉터리에 쓸 수 없기 때문에 ). 사용자의 애플리케이션 데이터 디렉토리에있는 구성 파일에 저장됩니다.
해당 파일의 경로는 %appdata%\%publisher_name%\%program_name%\%version%\user.config
, 예를 C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
. 프로그램에 강력한 이름을 지정한 경우 강력한 이름이이 경로의 프로그램 이름에 추가됩니다.
폴더 이름의 해시를 알아 내기 위해 둘러 보는 동안 ( 이 답변을 통해 ) 발견했습니다.
http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx
(편집 : Wayback Machine 링크 : https://web.archive.org/web/20160307233557/http://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/433979.aspx )
user.config
파일 의 정확한 경로 는 다음과 같습니다.
<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config
어디
<Profile Directory>
-로밍 프로필 디렉터리 또는 로컬 디렉터리입니다. 설정은 기본적으로 로컬user.config
파일 에 저장됩니다 . 로밍에 설정을 저장하려면user.config
파일, 당신은 함께 설정 표시해야SettingsManageabilityAttribute
와SettingsManageability
로 설정을Roaming
.
<Company Name>
-일반적으로에 의해 지정된AssemblyCompanyAttribute
문자열입니다 (문자열이 필요에 따라 이스케이프되고 잘립니다. 어셈블리에 지정되지 않은 경우 대체 절차가 있음에 유의).
<App Name>
-일반적으로에서 지정한 문자열AssemblyProductAttribute
입니다 (회사 이름과 동일한 경고).
<Evidence Type>
및<Evidence Hash>
-적절한 앱 도메인 및 어셈블리 격리를 제공하기 위해 앱 도메인 증거에서 파생 된 정보.
<Version>
-일반적으로AssemblyVersionAttribute
. 이는 나란히 배포 된 여러 버전의 앱을 격리하는 데 필요합니다.파일 이름은 항상 단순히 '
user.config
'입니다.
사용자의 홈 폴더 (xp에서는 C : \ documents and settings \ user, Windows Vista에서는 c : \ users \ user)의 애플리케이션 데이터 폴더에 애플리케이션 이름이있는 폴더에 있습니다.
추신 :-실행 상자에서 % appdata %로 액세스하십시오!
설정 파일이 웹 앱에있는 경우 web.config 파일 (프로젝트 바로 아래)에 있습니다. 다른 유형의 프로젝트에있는 경우 app.config 파일 (프로젝트 아래에도 있음)에 있습니다. .
편집하다
주석에서 지적했듯이 디자인 타임 애플리케이션 설정은 웹 애플리케이션 이외의 애플리케이션에 대한 app.config 파일에 있습니다. 빌드 할 때 app.config 파일이 출력 디렉터리에 복사되고 이름이 yourexename .exe.config 로 지정 됩니다. 런타임에는 yourexename.exe.config라는 파일 만 읽습니다.
두 개의 파일 : 1) app.config 또는 web.config 파일. 그녀의 설정은 텍스트 편집기로 빌드 한 후 사용자 지정할 수 있습니다. 2) settings.designer.cs 파일. 이 파일에는 구성 파일에서 설정을로드하는 자동 생성 코드가 있지만 구성 파일에 특정 설정이없는 경우에도 기본값이 있습니다.
이미 답변을 받았지만 설정 디자이너의 설정을 동기화하여 기본 설정으로 돌아갈 수는 없습니까?