Share via


ClickOnce 및 애플리케이션 설정

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

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

애플리케이션 설정 파일

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

참고 항목

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

ClickOnce를 사용하여 배포되지 않은 Windows Forms 애플리케이션에서 애플리케이션의 <app>.exe.config 파일은 애플리케이션 디렉터리에 저장되는 반면, user.config 파일은 사용자의 Documents and Settings 폴더에 저장됩니다. ClickOnce 애플리케이션에서 <app>.exe.config는 ClickOnce 애플리케이션 캐시 내부의 애플리케이션 디렉터리에 있으며 user.config는 해당 애플리케이션의 ClickOnce 데이터 디렉터리에 있습니다.

애플리케이션을 배포하는 방법에 관계없이 애플리케이션 설정에서 <app>.exe.config에 대한 안전한 읽기 권한 및 user.config에 대한 안전한 읽기/쓰기 권한을 보장합니다.

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

.NET Core 및 .NET 5 이상

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

버전 업그레이드

ClickOnce 애플리케이션의 각 버전이 다른 모든 버전에서 격리된 것처럼 ClickOnce 애플리케이션에 대한 애플리케이션 설정은 다른 버전의 설정에서도 격리됩니다. 사용자가 최신 버전의 애플리케이션으로 업그레이드할 때 애플리케이션 설정은 최신(가장 높은 번호가 매겨진) 버전의 설정을 업데이트된 버전에서 제공한 설정과 비교하고 설정을 새 설정 파일 세트로 병합합니다.

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

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

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

ClickOnce 및 로밍 설정

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