최신 파일 버전 및 어셈블리 버전을 사용하는 어셈블리를 사용할 수 있게 되면 자동으로 업데이트되도록 ClickOnce 애플리케이션을 구성할 수 있습니다. 고객이 이 동작에 동의하도록 하려면 개인 정보 프롬프트를 표시할 수 있습니다. 그런 다음 애플리케이션에 자동으로 업데이트할 권한을 부여할지 여부를 선택할 수 있습니다. 애플리케이션이 자동으로 업데이트할 수 없으면 설치되지 않습니다.
비고
이 문서의 지침은 Visual Studio에서 사용할 수 있는 IDE(대화형 개발 환경)의 최신 버전을 보여 줍니다. 컴퓨터에 일부 사용자 인터페이스 요소에 대한 다른 이름 또는 위치가 표시될 수 있습니다. 다른 버전의 Visual Studio 또는 다른 환경 설정을 사용할 수 있습니다. 자세한 내용은 IDE 개인 설정참조하세요.
업데이트 동의 만들기 대화 상자
개인 정보 프롬프트를 표시하려면 읽기 권한자에게 애플리케이션에 대한 자동 업데이트에 동의하도록 요청하는 애플리케이션을 만듭니다.
동의 대화 상자를 만들려면
파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.
새 프로젝트 대화 상자에서 Windows를 클릭한 다음 WindowsFormsApplication을 클릭합니다.
이름에 ConsentDialog를 입력한 다음 확인을 클릭합니다.
디자이너에서 폼을 클릭합니다.
속성 창에서 텍스트 속성을 업데이트 동의 대화 상자로 변경합니다.
도구 상자에서 모든 Windows Forms를 확장하고 레이블 컨트롤을 폼으로 끕니다.
디자이너에서 레이블 컨트롤을 클릭합니다.
[속성] 창에서 [모양] 아래의 Text 속성을 다음과 같이 변경합니다.
설치하려는 애플리케이션은 웹에서 최신 업데이트를 확인합니다. "동의함"을 클릭하면 인터넷에서 자동으로 업데이트를 확인하고 설치할 수 있는 권한을 애플리케이션에 부여합니다.
도구 상자에서 확인란 컨트롤을 폼의 가운데로 끕니다.
[속성] 창에서 [레이아웃] 아래의 Text 속성을 [동의함]으로 변경합니다.
도구 상자에서 단추 컨트롤을 폼의 왼쪽 아래로 끕니다.
[속성] 창에서 [레이아웃] 아래의 [텍스트] 속성을 [계속]으로 변경합니다.
속성 창에서 디자인 아래의 (Name) 속성을 ProceedButton으로 변경합니다.
도구 상자에서 단추 컨트롤을 폼의 오른쪽 아래로 끕니다.
[속성] 창에서 [레이아웃]에서 [텍스트] 속성을 [취소]로 변경합니다.
속성 창에서 디자인 아래의 (Name) 속성을 CancelButton으로 변경합니다.
디자이너에서 I Agree 확인란을 두 번 클릭하여 CheckedChanged 이벤트 처리기를 생성합니다.
Form1 코드 파일에서 CheckedChanged 이벤트 처리기에 대해 다음 코드를 추가합니다.
클래스 생성자를 업데이트하여 기본적으로 진행 단추를 사용하지 않도록 설정합니다.
Form1 코드 파일에서 부울 변수에 대해 다음 코드를 추가하여 최종 사용자가 온라인 업데이트에 동의했는지 추적합니다.
디자이너에서 [계속] 단추를 두 번 클릭하여 Click 이벤트 처리기를 생성합니다.
Form1 코드 파일에서 [계속 ] 단추에 대한 Click 이벤트 처리기에 다음 코드를 추가합니다.
디자이너에서 취소 단추를 두 번 클릭하여 Click 이벤트 처리기를 생성합니다.
Form1 코드 파일에서 취소 단추의 Click 이벤트 처리기에 대해 다음 코드를 추가합니다.
최종 사용자가 온라인 업데이트에 동의하지 않는 경우 오류를 반환하도록 애플리케이션을 업데이트합니다.
Visual Basic 개발자만 해당:
솔루션 탐색기에서 ConsentDialog를 클릭합니다.
프로젝트 메뉴에서 모듈 추가를 클릭한 다음 추가를 클릭합니다.
Module1.vb 코드 파일에서 다음 코드를 추가합니다.
Module Module1 Function Main() As Integer Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Dim f As New Form1() Application.Run(f) If (Not f.accepted) Then Return -1 Else Return 0 End If End Function End Module
프로젝트 메뉴에서 ConsentDialog 속성을 클릭한 다음 애플리케이션 탭을 클릭합니다.
애플리케이션 프레임워크 사용 선택을 취소합니다.
시작 개체 드롭다운 메뉴에서 Module1을 선택합니다.
비고
애플리케이션 프레임워크를 사용하지 않도록 설정하면 비주얼 스타일, 애플리케이션 이벤트, 시작 화면, 단일 인스턴스 애플리케이션 등의 기능이 비활성화됩니다. 자세한 내용은 애플리케이션 페이지, 프로젝트 디자이너(Visual Basic)를 참조하세요.
Visual C# 개발자만 해당:
Program.cs 코드 파일을 열고 다음 코드를 추가합니다.
static int Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 f = new Form1(); Application.Run(f); if (!f.accepted) return -1; else return 0; }
빌드 메뉴에서 BuildSolution을 클릭합니다.
사용자 지정 부트스트래퍼 패키지 만들기
최종 사용자에게 개인 정보 프롬프트를 표시하려면 업데이트 동의 대화 상자 애플리케이션에 대한 사용자 지정 부트스트래퍼 패키지를 만들고 모든 ClickOnce 애플리케이션에 필수 구성 요소로 포함할 수 있습니다.
이 절차에서는 다음 문서를 만들어 사용자 지정 부트스트래퍼 패키지를 만드는 방법을 보여 줍니다.
부트스트래퍼의 내용을 설명하는 product.xml 매니페스트 파일입니다.
문자열 및 소프트웨어 사용 조건과 같은 패키지의 지역화 관련 측면을 나열하는 package.xml 매니페스트 파일입니다.
소프트웨어 사용 조건에 대한 문서입니다.
1단계: 부트스트래퍼 디렉터리를 만들려면
\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages%PROGRAMFILES%UpdateConsentDialog라는 디렉터리를 만듭니다.
비고
이 폴더를 만들려면 관리자 권한이 필요할 수 있습니다.
UpdateConsentDialog 디렉터리에서 en이라는 하위 디렉터리를 만듭니다.
비고
각 로캘에 대한 새 디렉터리를 만듭니다. 예를 들어 fr 및 de 로캘에 대한 하위 디렉터리를 추가할 수 있습니다. 필요한 경우 이러한 디렉터리에는 프랑스어 및 독일어 문자열 및 언어 팩이 포함됩니다.
2단계: product.xml 매니페스트 파일을 만들려면
product.xml라는 텍스트 파일을 만듭니다.
product.xml 파일에서 다음 XML 코드를 추가합니다. 기존 XML 코드를 덮어쓰지 않도록 합니다.
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.Sample.EULA"> <!-- Defines the list of files to be copied on build. --> <PackageFiles CopyAllPackageFiles="false"> <PackageFile Name="ConsentDialog.exe"/> </PackageFiles> <!-- Defines how to run the Setup package.--> <Commands > <Command PackageFile = "ConsentDialog.exe" Arguments=''> <ExitCodes> <ExitCode Value="0" Result="Success" /> <ExitCode Value="-1" Result="Fail" String="AU_Unaccepted" /> <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> </ExitCodes> </Command> </Commands> </Product>
UpdateConsentDialog 부트스트래퍼 디렉터리에 파일을 저장합니다.
3단계: package.xml 매니페스트 파일 및 소프트웨어 사용 조건을 만들려면
package.xml라는 텍스트 파일을 만듭니다.
package.xml 파일에서 다음 XML 코드를 추가하여 로캘을 정의하고 소프트웨어 사용 조건을 포함합니다. 기존 XML 코드를 덮어쓰지 않도록 합니다.
<Package xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" Name="DisplayName" Culture="Culture" LicenseAgreement="eula.rtf"> <PackageFiles> <PackageFile Name="eula.rtf"/> </PackageFiles> <!-- Defines a localizable string table for error messages. --> <Strings> <String Name="DisplayName">Update Consent Dialog</String> <String Name="Culture">en</String> <String Name="AU_Unaccepted">The automatic update agreement is not accepted.</String> <String Name="GeneralFailure">A failure occurred attempting to launch the setup.</String> </Strings> </Package>
UpdateConsentDialog 부트스트래퍼 디렉터리의 en 하위 디렉터리에 파일을 저장합니다.
소프트웨어 사용 조건에 대한 eula.rtf 문서를 만듭니다.
비고
소프트웨어 사용 조건에는 라이선스, 보증, 책임 및 현지 법률에 대한 정보가 포함되어야 합니다. 이러한 파일은 로캘별로 지정되어야 하므로 파일이 MBCS 또는 UNICODE 문자를 지원하는 형식으로 저장되어야 합니다. 소프트웨어 사용 조건의 내용에 대해서는 법률 부서에 문의하세요.
UpdateConsentDialog 부트스트래퍼 디렉터리의 en 하위 디렉터리에 문서를 저장합니다.
필요한 경우 새 package.xml 매니페스트 파일과 각 로캘의 소프트웨어 사용 조건에 대한 새 eula.rtf 문서를 만듭니다. 예를 들어 fr 및 de 로캘에 대한 하위 디렉터리를 만든 경우 별도의 package.xml 매니페스트 파일 및 소프트웨어 사용 조건을 만들고 fr 및 de 하위 디렉터리에 저장합니다.
업데이트 동의 애플리케이션을 필수 구성 요소로 설정
Visual Studio에서 업데이트 동의 애플리케이션을 필수 구성 요소로 설정할 수 있습니다.
업데이트 동의 애플리케이션을 필수 구성 요소로 설정하려면
솔루션 탐색기에서 배포하려는 애플리케이션의 이름을 클릭합니다.
프로젝트 메뉴에서 ProjectName속성을 클릭합니다.
게시 페이지를 클릭한 다음 필수 구성 요소를 클릭합니다.
동의 업데이트 대화 상자를 선택합니다.
비고
필수 구성 요소 대화 상자에서 업데이트 동의 대화 상자를 보려면 Visual Studio를 닫았다가 다시 열어야 할 수 있습니다.
OK를 클릭합니다.
설치 프로그램 만들기 및 테스트
업데이트 동의 애플리케이션을 필수 구성 요소로 설정한 후 애플리케이션에 대한 설치 관리자 및 부트스트래퍼를 생성할 수 있습니다.
"설치 프로그램을 만들고 테스트하려면 ‘동의함’을 클릭하지 않고"
솔루션 탐색기에서 배포하려는 애플리케이션의 이름을 클릭합니다.
프로젝트 메뉴에서 ProjectName속성을 클릭합니다.
게시 페이지를 클릭한 다음 지금 게시를 클릭합니다.
게시 출력이 자동으로 열리지 않으면 게시 출력으로 이동합니다.
Setup.exe 프로그램을 실행합니다.
설치 프로그램에는 업데이트 동의 대화 상자 소프트웨어 사용권 계약이 표시됩니다.
소프트웨어 사용권 계약을 읽은 다음 동의를 클릭합니다.
업데이트 동의 대화 상자 애플리케이션이 나타나고 다음 텍스트가 표시됩니다. 설치하려는 애플리케이션은 웹에서 최신 업데이트를 확인합니다. 동의함(I Agree)을 클릭하면 애플리케이션이 인터넷에서 자동으로 업데이트를 확인할 수 있는 권한을 부여합니다.
애플리케이션을 닫거나 취소를 클릭합니다.
애플리케이션에 오류가 표시됩니다. ApplicationName에 대한 시스템 구성 요소를 설치하는 동안 오류가 발생했습니다. 설치는 모든 시스템 구성 요소가 성공적으로 설치된 후에만 진행할 수 없습니다.
세부 정보를 클릭하여 다음 오류 메시지를 표시합니다. 구성 요소 업데이트 동의 대화 상자를 설치하지 못했습니다. "자동 업데이트 계약이 허용되지 않습니다."라는 오류 메시지가 표시됩니다. 다음 구성 요소를 설치하지 못했습니다. - 동의 업데이트 대화 상자
닫기를 클릭합니다.
동의함 클릭으로 설치 프로그램을 만들고 테스트하려면
솔루션 탐색기에서 배포하려는 애플리케이션의 이름을 클릭합니다.
프로젝트 메뉴에서 ProjectName속성을 클릭합니다.
게시 페이지를 클릭한 다음 지금 게시를 클릭합니다.
게시 출력이 자동으로 열리지 않으면 게시 출력으로 이동합니다.
Setup.exe 프로그램을 실행합니다.
설치 프로그램에는 업데이트 동의 대화 상자 소프트웨어 사용권 계약이 표시됩니다.
소프트웨어 사용권 계약을 읽은 다음 동의를 클릭합니다.
업데이트 동의 대화 상자 애플리케이션이 나타나고 다음 텍스트가 표시됩니다. 설치하려는 애플리케이션은 웹에서 최신 업데이트를 확인합니다. 동의함(I Agree)을 클릭하면 애플리케이션이 인터넷에서 자동으로 업데이트를 확인할 수 있는 권한을 부여합니다.
동의함, [계속]을 차례로 클릭합니다.
애플리케이션이 설치를 시작합니다.
애플리케이션 설치 대화 상자가 나타나면 설치를 클릭합니다.