다음을 통해 공유


연습: ClickOnce 응용 프로그램 수동 배포

업데이트: 2007년 11월

이 연습에서는 매니페스트 생성 및 편집 도구(Mage)의 명령줄 버전 또는 그래픽 버전을 사용하여 전체 ClickOnce 배포를 만드는 데 필요한 단계에 대해 설명합니다.

Visual Studio를 자주 사용하지 않거나, 배포 과정을 자동화해야 하거나, 신뢰할 수 있는 응용 프로그램 배포 같은 고급 배포 기능을 사용하려면 Mage.exe 명령줄 도구를 사용하여 ClickOnce 매니페스트를 만들어야 합니다. 다음 연습에서는 매니페스트 생성 및 편집 도구의 명령줄 버전(Mage.exe)이나 Windows Forms 버전(MageUI.exe)을 사용하여 전체 ClickOnce 배포를 생성하는 데 필요한 모든 단계를 설명합니다.

사전 요구 사항

이 연습에서는 WindowsFormsApp1이라는 Windows Forms 응용 프로그램을 배포할 준비가 되어 있는 것으로 가정합니다. Windows SDK(소프트웨어 개발 키트)도 설치해야 합니다.

배포를 빌드하기 전에 결정해야 할 여러 가지 문제가 있습니다. 가장 먼저 결정해야 할 중요한 문제는 배포 방법입니다. 웹 또는 파일 공유 위치를 통해 배포하거나 CD를 사용하여 설치할 수 있습니다. 자세한 내용은 ClickOnce 배포 개요를 참조하십시오.

그런 다음 응용 프로그램을 더 높은 신뢰 수준에서 실행할지 여부를 결정해야 합니다. 신뢰할 수 있는 응용 프로그램 배포 개요에 설명되어 있는 것과 마찬가지로 ClickOnce 응용 프로그램은 기본적으로 부분적으로 신뢰할 수 있는 영역에서 실행되며, 응용 프로그램의 정확한 권한은 이 응용 프로그램이 인트라넷에 호스팅되어 있는지 인터넷을 통해 제공되는지 여부에 따라 결정됩니다. 응용 프로그램에서 클라이언트 컴퓨터의 데이터에 액세스하거나, 로컬 장치를 사용하거나, Windows API 함수를 호출하거나, 기타 잠재적 위험이 있는 작업을 수행해야 하는 경우 더 높은 신뢰 수준을 부여받아야 합니다. 사용자의 시스템에 대한 모든 액세스 권한 같은 완전 신뢰가 응용 프로그램에 필요한 경우 Mage.exe를 사용하여 이를 쉽게 설정할 수 있습니다. 응용 프로그램에 대한 사용자 지정 권한 집합을 정의하려는 경우 텍스트 편집기나 MageUI.exe를 사용하여 다른 매니페스트에서 인터넷 또는 인트라넷 권한 섹션을 복사하고 이를 필요에 맞게 수정한 다음 응용 프로그램 매니페스트에 추가할 수 있습니다.

ClickOnce 매니페스트에 더 높은 신뢰를 부여하는 두 가지 방법으로는 권한 높이기와 신뢰할 수 있는 응용 프로그램 배포가 있습니다. 두 경우 모두 MakeCert.exe 도구를 사용하여 생성하거나 CA(인증 기관)에서 얻은 Authenticode 인증서로 배포에 서명해야 합니다. 신뢰할 수 있는 응용 프로그램 배포를 사용하려면 모든 클라이언트 컴퓨터에 인증서를 설치하는 작업을 한 번 수행해야 합니다. 자세한 내용은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조하십시오.

Mage.exe 명령줄 도구를 사용하여 응용 프로그램을 배포하려면

  1. Windows SDK 명령 프롬프트를 열고 ClickOnce 파일을 저장할 디렉터리로 이동합니다.

  2. 현재 배포 버전에 따라 이름이 지정된 디렉터리를 만듭니다. 응용 프로그램을 처음 배포하는 경우 일반적으로 하위 디렉터리 이름을 1.0.0.0으로 지정합니다.

    참고:

    배포 버전은 응용 프로그램 파일의 버전과 다를 수 있습니다.

  3. 이 폴더에 대해 bin이라는 하위 디렉터리를 만들고 실행 파일, 어셈블리, 리소스, 데이터 파일을 비롯한 모든 응용 프로그램 파일을 이 디렉터리에 배치합니다.

  4. Mage.exe를 호출하여 응용 프로그램 매니페스트를 생성합니다.

    mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin
    
  5. 디지털 인증서를 사용하여 응용 프로그램 매니페스트에 서명합니다.

    mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
    
  6. Mage.exe를 호출하여 배포 매니페스트를 생성합니다. Mage.exe는 기본적으로 ClickOnce 배포를 설치된 응용 프로그램으로 표시하므로 응용 프로그램을 온라인과 오프라인으로 모두 실행할 수 있습니다. 사용자가 온라인 상태일 때만 응용 프로그램을 사용할 수 있도록 하려면 f 값과 함께 -i 플래그를 사용합니다. 기본값을 적용한 상태에서 사용자가 웹 사이트나 파일 공유 위치를 통해 응용 프로그램을 설치하는 경우 -providerUrl 플래그의 값이 웹 서버나 공유 위치의 응용 프로그램 매니페스트 위치를 가리켜야 합니다.

    mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest -providerUrl http://www.adatum.com/WindowsFormsApp1/WindowsFormsApp1.application
    
  7. 인증서를 사용하여 배포 매니페스트에 서명합니다.

    mage -Sign WindowsFormsApp1.application -CertFile mycert.pfx
    
  8. 버전 폴더와 \bin 폴더를 비롯하여 현재 디렉터리의 모든 파일을 배포 대상에 복사합니다. 이는 웹 사이트나 FTP 사이트의 폴더, 파일 공유 위치 또는 CD일 수 있습니다.

  9. 응용 프로그램을 설치하는 데 필요한 URL, UNC 또는 실제 미디어를 사용자에게 제공합니다. URL이나 UNC를 제공하는 경우에는 배포 매니페스트의 전체 경로를 사용자에게 제공해야 합니다. 예를 들어, WindowsFormsApp1이 WindowsFormsApp1 디렉터리의 http://webserver01/에 배포되는 경우 전체 URL 경로는 http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy입니다.

MageUI.exe 그래픽 도구를 사용하여 응용 프로그램 배포

  1. Windows SDK 명령 프롬프트를 열고 ClickOnce 파일을 저장할 디렉터리로 이동합니다.

  2. bin이라는 하위 디렉터리를 만들고 실행 파일, 어셈블리, 리소스, 데이터 파일을 비롯한 모든 응용 프로그램 파일을 이 디렉터리에 배치합니다.

  3. 현재 배포 버전에 따라 이름이 지정된 하위 디렉터리를 만듭니다. 응용 프로그램을 처음 배포하는 경우 일반적으로 하위 디렉터리 이름을 1.0.0.0으로 지정합니다.

    참고:

    배포 버전은 응용 프로그램 파일의 버전과 다를 수 있습니다.

  4. 2단계에서 만든 디렉터리에 \bin 디렉터리를 옮긴 다음 그래픽 도구를 시작합니다.

    MageUI.exe
    
  5. 메뉴에서 파일, 새로 만들기, 응용 프로그램 매니페스트를 차례로 선택하여 새 응용 프로그램 매니페스트를 만듭니다.

  6. 기본 이름 탭에 이 배포의 이름과 버전 번호를 입력합니다.

  7. 파일 탭을 선택하고 응용 프로그램 디렉터리 텍스트 상자 옆에 있는 찾아보기... 단추를 클릭합니다.

  8. 2단계에서 만든 응용 프로그램 파일이 들어 있는 디렉터리를 선택하고 폴더 선택 대화 상자에서 확인을 클릭합니다.

  9. 채우기 단추를 클릭하여 모든 응용 프로그램 파일을 파일 목록에 추가합니다. 응용 프로그램에 실행 파일이 여러 개 포함되어 있는 경우 파일 형식 드롭다운 목록에서 진입점을 선택하여 이 배포의 주 실행 파일을 시작 응용 프로그램으로 표시합니다. 응용 프로그램에 실행 파일이 하나만 포함되어 있으면 MageUI.exe에서 자동으로 해당 파일을 표시합니다.

  10. 권한이 필요함 탭을 선택하고 응용 프로그램에 부여해야 할 신뢰 수준을 선택합니다. 대부분의 응용 프로그램에는 기본값인 완전 신뢰를 그대로 사용할 수 있습니다.

  11. 메뉴에서 파일, 저장을 차례로 선택하고 응용 프로그램 매니페스트를 저장합니다. 응용 프로그램 매니페스트를 저장할 때 이를 서명하라는 메시지가 나타납니다.

  12. 인증서가 파일 시스템에 파일로 저장되어 있으면 인증서 파일로 서명 옵션을 선택하고 ... 단추를 사용하여 파일 시스템에서 인증서를 선택합니다.

    - 또는 -

    인증서가 컴퓨터에서 액세스할 수 있는 인증서 저장소에 보관되어 있으면 저장된 인증서로 서명 옵션을 선택하고 제공되는 목록에서 인증서를 선택합니다.

  13. 메뉴에서 파일, 새로 만들기, 배포 매니페스트를 차례로 선택한 다음 이름 탭에 이름과 버전 번호(이 예제의 경우 1.0.0.0)를 입력합니다.

  14. 게시자 탭을 선택하고 게시자와 제품의 값을 입력합니다. (제품은 응용 프로그램을 로컬로 설치할 때 Windows 시작 메뉴에서 응용 프로그램에 부여되는 이름입니다.

  15. 업데이트 탭으로 전환하고 이 응용 프로그램을 업데이트할 빈도를 지정합니다. 응용 프로그램에서 ClickOnce 배포 API를 사용하여 업데이트를 자체 검사하는 경우 이 응용 프로그램의 업데이트 확인 확인란의 선택을 취소합니다.

  16. 응용 프로그램 참조 탭으로 전환합니다. 매니페스트 선택 단추를 클릭하고 이전 단계에서 만든 응용 프로그램 매니페스트를 선택하여 이 탭의 값을 모두 미리 채울 수 있습니다.

  17. 저장을 선택하고 배포 매니페스트를 디스크에 저장합니다. 응용 프로그램 매니페스트를 저장할 때 이를 서명하라는 메시지가 나타납니다.

  18. 인증서가 파일 시스템에 파일로 저장되어 있으면 인증서 파일로 서명 옵션을 선택하고 ... 단추를 사용하여 파일 시스템에서 인증서를 선택합니다.

    - 또는 -

    인증서가 컴퓨터에서 액세스할 수 있는 인증서 저장소에 보관되어 있으면 저장된 인증서로 서명 옵션을 선택하고 제공되는 목록에서 인증서를 선택합니다.

  19. 버전 폴더와 \bin 폴더를 비롯하여 현재 디렉터리의 모든 파일을 배포 대상에 복사합니다. 이는 웹 사이트나 FTP 사이트의 폴더, 파일 공유 위치 또는 CD일 수 있습니다.

  20. 응용 프로그램을 설치하는 데 필요한 URL, UNC 또는 실제 미디어를 사용자에게 제공합니다. URL이나 UNC를 제공하는 경우에는 배포 매니페스트의 전체 경로를 사용자에게 제공해야 합니다. 예를 들어, WindowsFormsApp1이 WindowsFormsApp1 디렉터리의 http://webserver01/에 배포되는 경우 전체 URL 경로는 http://webserver01/WindowsFormsApp1/WindowsFormsApp1.deploy입니다.

다음 단계

새 버전의 응용 프로그램을 배포해야 하는 경우 1.1.0.0 같이 새 버전에 따른 이름을 사용하여 새 디렉터리를 만들고 새 응용 프로그램 파일을 이 새 디렉터리의 \bin 폴더에 옮겨야 합니다. 새 응용 프로그램 매니페스트를 생성하고 이를 새 디렉터리에 저장한 다음 게시자가 새 매니페스트에 서명하도록 해야 합니다. 서명된 매니페스트를 다시 가져온 다음 Mage.exe를 사용하여 배포 매니페스트를 업데이트하고 새 응용 프로그램 매니페스트를 가리키도록 설정할 수 있습니다.

mage -Update WindowsFormsApp1.application -Version 1.1.0.0 -AppManifest 1.1.0.0\WindowsFormsApp1.exe.manifest

MageUI.exe 사용자는 응용 프로그램 참조 탭을 선택하고 매니페스트 선택 단추를 다시 선택하여 해당 배포 매니페스트를 열 때 동일한 작업을 수행할 수 있습니다.

매니페스트의 모든 변경은 디지털 서명을 무효화하므로 응용 프로그램 매니페스트 참조를 업데이트한 후에는 배포 매니페스트에 다시 서명해야 합니다.

참고 항목

개념

ClickOnce 배포 개요

참조

매니페스트 생성 및 편집 도구(Mage.exe)

매니페스트 생성 및 편집 도구, 그래픽 클라이언트(MageUI.exe)

ClickOnce 배포 매니페스트

ClickOnce 응용 프로그램 매니페스트