Share via


연습: 다시 서명할 필요가 없고 브랜드 정보가 유지되는 ClickOnce 애플리케이션 수동 배포

ClickOnce 애플리케이션을 만든 다음 게시와 배포를 위해 고객에게 전달할 때, 지금까지 고객은 배포 매니페스트를 업데이트하고 다시 서명해야 했습니다. 이 방법은 지금도 선호되는 방법이지만, .NET Framework 3.5를 사용하면 고객이 새 배포 매니페스트를 다시 생성하지 않고도 배포할 수 있는 ClickOnce 배포를 만들 수 있습니다. 자세한 내용은 다시 서명하지 않고 테스트 및 프로덕션 서버용 ClickOnce 애플리케이션 배포를 참조하세요.

ClickOnce 애플리케이션을 만들고 게시 및 배포를 위해 고객에게 전달할 때, 애플리케이션은 고객의 브랜딩을 사용하거나 사용자의 브랜딩을 유지할 수 있습니다. 예를 들어 애플리케이션이 단일 전용 애플리케이션인 경우에는 사용자의 브랜딩을 유지하는 것이 좋습니다. 애플리케이션이 각 고객에 대해 고도로 사용자 지정된 경우에는 고객의 브랜딩을 사용하는 것이 좋습니다. .NET Framework 3.5를 사용하면 배포할 조직에 애플리케이션을 제공할 때 사용자의 브랜딩, 게시자 정보 및 보안 서명을 유지할 수 있습니다. 자세한 내용은 다른 사용자가 배포할 수 있는 ClickOnce 애플리케이션 만들기를 참조하세요.

참고

이 연습에서는 명령줄 도구인 Mage.exe나 그래픽 도구인 MageUI.exe를 이용해 배포를 수동으로 만듭니다. 수동 배포에 대한 자세한 내용은 연습: ClickOnce 애플리케이션 수동 배포를 참조하세요.

참고 항목

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

사전 요구 사항

이 연습의 단계를 수행하려면 다음이 필요합니다.

  • 배포할 준비가 된 Windows Forms 애플리케이션입니다. 이 애플리케이션을 WindowsFormsApp1이라고 합니다.

  • Visual Studio 또는 Windows SDK.

Mage.exe를 사용하여 여러 배포 및 브랜딩 지원을 이용해 ClickOnce 애플리케이션을 배포하려면

  1. Visual Studio 명령 프롬프트 또는 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 -UseManifestForTrust true -Publisher "A. Datum Corporation"
    
  5. 디지털 인증서를 이용해 애플리케이션 매니페스트에 서명합니다.

    mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
    
  6. Mage.exe 호출을 사용하여 배포 매니페스트를 생성합니다. 기본적으로 Mage.exe는 ClickOnce 배포를 설치된 애플리케이션으로 표시하므로 온라인과 오프라인 모두에서 실행할 수 있습니다. 사용자가 온라인일 때만 애플리케이션을 사용할 수 있게 하려면 -i 인수를 f 값과 함께 사용해야 합니다. 이 애플리케이션은 여러 배포 기능을 활용하기 때문에 -providerUrl 인수를 Mage.exe로 보내야 합니다. (오프라인 애플리케이션의 -providerUrl을 제외한 .NET Framework 3.5 이전 버전에서는 오류가 발생합니다.)

    mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest
    
  7. 배포 매니페스트에 서명해선 안 됩니다.

  8. 본인의 네트워크에 애플리케이션을 배포할 고객에게 모든 파일을 제공합니다.

  9. 이 시점에서 고객은 자체 생성된 인증서를 이용해 배포 매니페스트에 서명해야 합니다. 예를 들어 Adventure Works라는 회사에 근무하는 고객은 MakeCert.exe 도구를 사용하여 자체 서명된 인증서를 생성할 수 있습니다. 그런 다음 Pvk2pfx.exe 도구를 이용해, MakeCert.exe가 만든 파일과 Mage.exe로 전달할 수 있는 PFX 파일을 결합합니다.

    makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer
    pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
    
  10. 고객은 이 인증서를 사용하여 배포 매니페스트에 서명합니다.

    mage -Sign WindowsFormsApp1.application -CertFile MyCert.pfx
    
  11. 고객은 자신의 사용자에게 애플리케이션을 배포합니다.

MageUI.exe를 사용하여 여러 배포 및 브랜딩 지원을 이용해 ClickOnce 애플리케이션을 배포하려면

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

  2. bin이라는 하위 디렉터리를 만들고 실행 파일, 어셈블리, 리소스 및 데이터 파일을 포함한 모든 애플리케이션 파일을 여기에 복사합니다.

  3. 배포의 현재 버전을 이름으로 지정한 하위 디렉터리를 만듭니다. 애플리케이션을 처음 배포하는 경우에는 1.0.0.0을 선택하는 것이 좋습니다.

    참고

    배포 버전은 애플리케이션 파일의 버전과 다를 수 있습니다.

  4. \bin디렉터리를 2단계에서 만든 디렉터리로 옮깁니다.

  5. MageUI.exe 그래픽 도구를 시작합니다.

    MageUI.exe
    
  6. 메뉴에서 파일, 새로 만들기, 애플리케이션 매니페스트를 선택하여 새 애플리케이션 매니페스트를 만듭니다.

  7. 기본 이름 탭에 이 배포의 이름과 버전 번호를 입력합니다. 그리고 게시자 값을 입력합니다. 이 값은 애플리케이션이 배포될 때 시작 메뉴의 애플리케이션 바로 가기 링크의 폴더 이름으로 사용합니다.

  8. 애플리케이션 옵션 탭을 선택하고 신뢰 정보에 애플리케이션 매니페스트 사용을 클릭합니다. 이렇게 하면 이 ClickOnce 애플리케이션에 대한 타사 브랜딩이 활성화됩니다.

  9. 파일 탭을 선택하고 애플리케이션 디렉터리 텍스트 상자 옆에 있는 찾아보기 단추를 클릭합니다.

  10. 2단계에서 만든 애플리케이션 파일이 포함된 디렉터리를 선택하고 폴더 선택 대화 상자에서 확인을 클릭합니다.

  11. 채우기 단추를 클릭하여 모든 애플리케이션 파일을 파일 목록에 추가합니다. 애플리케이션에 실행 파일이 두 개 이상 있다면 파일 형식 드롭다운 목록에서 진입점을 선택하여, 이 배포에 대한 주 실행 파일을 시작 애플리케이션으로 표시합니다. (애플리케이션에 실행 파일이 하나만 있다면 MageUI.exe에서 대신 표시해줍니다.)

  12. 필요한 권한 탭을 선택하고 애플리케이션에서 어설션해야 하는 신뢰 수준을 선택합니다. 기본값은 완전 신뢰이며 대부분의 애플리케이션에 적용됩니다.

  13. 메뉴에서 파일, 저장을 선택하고 애플리케이션 매니페스트를 저장합니다. 애플리케이션 매니페스트를 저장할 때는 매니페스트에 서명하라는 메시지가 표시됩니다.

  14. 파일 시스템에 파일로 저장된 인증서가 있는 경우 인증서 파일로 서명 옵션을 사용하고, 줄임표( ... ) 버튼을 사용하여 파일 시스템에서 인증서를 선택합니다.

    또는

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

  15. 메뉴에서 파일, 새로 만들기, 배포 매니페스트를 선택하여 배포 매니페스트를 만든 다음, 이름 탭에 이름과 버전 번호(이 예제에서는1.0.0.0)를 입력합니다.

  16. 업데이트 탭으로 전환하고 이 애플리케이션을 업데이트할 빈도를 지정합니다. 애플리케이션에서 ClickOnce 배포 API를 사용하여 업데이트 자체를 확인하는 경우, 이 애플리케이션에서 업데이트를 확인해야 함이라는 확인란을 선택 취소합니다.

  17. 애플리케이션 참조 탭으로 전환합니다. 매니페스트 선택 단추를 클릭하고 이전 단계에서 만든 애플리케이션 매니페스트를 선택하면 이 탭의 모든 값을 미리 채울 수 있습니다.

  18. 저장을 선택하고 배포 매니페스트를 디스크에 저장합니다. 애플리케이션 매니페스트를 저장할 때는 매니페스트에 서명하라는 메시지가 표시됩니다. 취소를 클릭하여 매니페스트를 서명하지 않고 저장합니다.

  19. 고객에게 모든 애플리케이션 파일을 제공합니다.

  20. 이 시점에서 고객은 자체 생성된 인증서를 이용해 배포 매니페스트에 서명해야 합니다. 예를 들어 Adventure Works라는 회사에 근무하는 고객은 MakeCert.exe 도구를 사용하여 자체 서명된 인증서를 생성할 수 있습니다. 그런 다음 Pvk2pfx.exe 도구를 이용해, MakeCert.exe가 만든 파일과 MageUI.exe로 전달할 수 있는 PFX 파일을 결합합니다.

    makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer
    pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
    
  21. 인증서가 생성되면 고객은 이제 MageUI.exe에서 배포 매니페스트를 열고 저장하여 배포 매니페스트를 서명합니다. 서명 대화 상자가 나타나면 고객은 인증서 파일로 서명 옵션을 선택하고 디스크에 저장한 PFX 파일을 선택합니다.

  22. 고객은 자신의 사용자에게 애플리케이션을 배포합니다.