다음을 통해 공유


ClickOnce 및 애플리케이션 설정

Windows Forms의 애플리케이션 설정을 사용하면 클라이언트에서 사용자 지정 애플리케이션 및 사용자 기본 설정을 쉽게 만들고, 저장하고, 유지 관리할 수 있습니다. 다음 문서에서는 ClickOnce 애플리케이션에서 애플리케이션 설정 파일이 작동하는 방식과 사용자가 다음 버전으로 업그레이드할 때 ClickOnce가 설정을 마이그레이션하는 방법을 설명합니다.

아래 정보는 기본 애플리케이션 설정 공급자인 클래스에 LocalFileSettingsProvider 만 적용됩니다. 사용자 지정 공급자를 제공하는 경우 해당 공급자는 데이터를 저장하는 방법과 버전 간에 설정을 업그레이드하는 방법을 결정합니다. 애플리케이션 설정 공급자에 대한 자세한 내용은 애플리케이션 설정 아키텍처를 참조하세요.

애플리케이션 설정 파일

애플리케이션 설정은 앱<.exe.config및user.config두 파일을> 사용합니다. 여기서 은 Windows Forms 애플리케이션의 이름입니다. user.config 애플리케이션이 사용자 범위 설정을 처음 저장할 때 클라이언트에서 만들어집니다. <반면 앱>.exe.config설정에 대한 기본값을 정의하는 경우 배포 전에 존재합니다. Visual Studio는 게시 명령을 사용할 때 이 파일을 자동으로 포함합니다. Mage.exe 또는 MageUI.exe사용하여 ClickOnce 애플리케이션을 만드는 경우 애플리케이션 매니페스트를 채울 때 이 파일이 애플리케이션의 다른 파일에 포함되어 있는지 확인해야 합니다.

비고

.NET Core 3.1 및 .NET 5 이상용 ClickOnce에서 Mage.exe 대신 dotnet-mage.exe사용합니다. 자세한 내용은 .NET용 ClickOnce를 참조하세요.

ClickOnce를 사용하여 배포되지 않은 Windows Forms 애플리케이션에서는 애플리케이션의 <앱>.exe.config 파일이 애플리케이션 디렉터리에 저장되고 user.config 파일은 사용자의 문서 및 설정 폴더에 저장됩니다. ClickOnce 애플리케이션 <에서 앱>.exe.config ClickOnce 애플리케이션 캐시 내의 애플리케이션 디렉터리에 있으며 user.config 해당 애플리케이션의 ClickOnce 데이터 디렉터리에 있습니다.

애플리케이션을 배포하는 방법에 관계없이 애플리케이션 설정은 앱<.exe.config대한 안전한 읽기 액세스>user.config대한 안전한 읽기/쓰기 액세스를 보장합니다.

ClickOnce 애플리케이션에서 애플리케이션 설정에서 사용하는 구성 파일의 크기는 ClickOnce 캐시의 크기로 제한됩니다. 자세한 내용은 ClickOnce 캐시 개요를 참조하세요.

.NET Core 및 .NET 5 이상

현재 게시할 .NET Core 어셈블리는 강력한 이름 키 파일로 서명해야 합니다. 그렇지 않은 경우, ApplicationSettingsBase.Upgrade 메서드는 새 ClickOnce 게시 후 설정을 올바르게 복사하지 않습니다. .NET Core 프로젝트의 속성에서 빌드 > 강력한 이름 지정 옵션 아래 강력한 이름 사용을 지정할 수 있습니다.

버전 업그레이드

ClickOnce 애플리케이션의 각 버전이 다른 모든 버전과 격리된 것처럼 ClickOnce 애플리케이션의 애플리케이션 설정도 다른 버전의 설정과 격리됩니다. 사용자가 최신 버전의 애플리케이션으로 업그레이드하는 경우 애플리케이션 설정은 최신(가장 높은 번호 매기기) 버전의 설정을 업데이트된 버전과 함께 제공되는 설정과 비교하고 설정을 새 설정 파일 집합으로 병합합니다.

다음 표에서는 애플리케이션 설정에서 복사할 설정을 결정하는 방법을 설명합니다.

변경 유형 업그레이드 작업
<app>.exe.config에 설정 추가된 새 설정이 현재 버전의 <앱>.exe.config 병합됩니다.
<app>.exe.config에서 설정 제거됨 이전 설정이 현재 버전의 <앱>.exe.config 제거됩니다.
설정의 기본값이 변경되었습니다. 로컬 설정은 여전히 원래 기본값으로 user.config에 설정되어 있습니다. 이 설정은 새 기본값을 값으로 사용하여 현재 버전의 user.config 병합됩니다.
설정의 기본값이 변경되었습니다. user.config에 설정이 기본값이 아닌 값으로 설정되었습니다. 이 설정은 기본값이 아닌 값이 유지된 현재 버전의 user.config 병합됩니다.

자신의 애플리케이션 설정 래퍼 클래스를 만들고 업데이트 논리를 사용자 지정하려는 경우, Upgrade 메서드를 재정의할 수 있습니다.

ClickOnce 및 로밍 설정

ClickOnce는 네트워크에서 컴퓨터 간에 설정 파일이 이동할 수 있도록 하는 로밍 설정과 호환되지 않습니다. 로밍 설정이 필요한 경우 네트워크를 통해 설정을 저장하는 애플리케이션 설정 공급자를 구현하거나 원격 컴퓨터에 설정을 저장하기 위한 사용자 지정 설정 클래스를 개발해야 합니다. 설정 공급자에 대한 자세한 내용은 애플리케이션 설정 아키텍처를 참조하세요.