Visual Studio를 사용하여 ClickOnce 애플리케이션을 배포할 수 없거나 신뢰할 수 있는 애플리케이션 배포와 같은 고급 배포 기능을 사용해야 하는 경우 명령줄 도구를 사용하여 Mage.exe
ClickOnce 매니페스트를 만들어야 합니다. 이 연습에서는 매니페스트 생성 및 편집 도구의 명령줄 버전(Mage.exe) 또는 그래픽 버전(MageUI.exe)을 사용하여 ClickOnce 배포를 만드는 방법을 설명합니다.
비고
.NET Core 3.1 및 .NET 5 이상용 ClickOnce에서 Mage.exe 대신 dotnet-mage.exe사용합니다. 자세한 내용은 .NET용 ClickOnce를 참조하세요.
필수 조건
이 안내에는 배포를 구축하기 전에 선택해야 하는 몇 가지 필수 조건과 옵션이 있습니다.
Mage.exe
및 MageUI.exe을 설치하세요.Mage.exe
WindowsMageUI.exe
SDK(소프트웨어 개발 키트)의 일부입니다. Windows SDK가 설치되어 있거나 Visual Studio에 포함된 Windows SDK 버전이 있어야 합니다.배포할 애플리케이션을 제공합니다.
이 연습에서는 배포할 준비가 된 Windows 애플리케이션이 있다고 가정합니다. 이 애플리케이션을 AppToDeploy라고 합니다.
배포가 어떻게 분산될지 결정합니다.
배포 옵션은 웹, 파일 공유 또는 CD입니다. 자세한 내용은 ClickOnce 보안 및 배포를 참조하세요.
애플리케이션에 높은 수준의 신뢰가 필요한지 여부를 확인합니다.
애플리케이션에 전체 신뢰(예: 사용자 시스템에 대한 모든 액세스 권한)가 필요한 경우 이 옵션을
-TrustLevel
사용하여Mage.exe
설정할 수 있습니다. 애플리케이션에 대한 사용자 지정 권한 집합을 정의하려면 다른 매니페스트에서 인터넷 또는 인트라넷 권한 섹션을 복사하고 필요에 맞게 수정한 다음 텍스트 편집기 또는 MageUI.exe사용하여 애플리케이션 매니페스트에 추가할 수 있습니다. 자세한 내용은 신뢰할 수 있는 애플리케이션 배포 개요를 참조하세요.Authenticode 인증서를 가져옵니다.
Authenticode 인증서를 사용하여 배포에 서명해야 합니다. Visual Studio
MageUI.exe
또는 도구를 사용하여 테스트 인증서를 생성하거나MakeCert.exe
Pvk2Pfx.exe
CA(인증 기관)에서 인증서를 가져올 수 있습니다. 신뢰할 수 있는 애플리케이션 배포를 사용하도록 선택하는 경우 모든 클라이언트 컴퓨터에 인증서를 일회성으로 설치해야 합니다. 자세한 내용은 신뢰할 수 있는 애플리케이션 배포 개요를 참조하세요.비고
인증 기관에서 가져올 수 있는 CNG 인증서를 사용하여 배포에 서명할 수도 있습니다.
애플리케이션에 UAC 정보가 포함된 매니페스트가 없는지 확인합니다.
애플리케이션에 요소와 같은
<dependentAssembly>
UAC(사용자 계정 컨트롤) 정보가 포함된 매니페스트가 포함되어 있는지 확인해야 합니다. 애플리케이션 매니페스트를 검사하려면 Windows Sysinternals Sigcheck 유틸리티를 사용할 수 있습니다.애플리케이션에 UAC 세부 정보가 포함된 매니페스트가 포함된 경우 UAC 정보 없이 다시 빌드해야 합니다. Visual Studio의 C# 프로젝트의 경우 프로젝트 속성을 열고 애플리케이션 탭을 선택합니다. 매니페스트 드롭다운 목록에서 매니페스트 없이 애플리케이션 만들기를 선택합니다. Visual Studio에서 Visual Basic 프로젝트의 경우 프로젝트 속성을 열고 애플리케이션 탭을 선택한 다음 UAC 설정 보기를 클릭합니다. 열린 매니페스트 파일에서 단일
<asmv1:assembly>
요소 내의 모든 요소를 제거합니다.애플리케이션에 클라이언트 컴퓨터의 필수 구성 요소가 필요한지 여부를 확인합니다.
Visual Studio에서 배포된 ClickOnce 애플리케이션에는 배포와 함께 필수 구성 요소 설치 부트스트래퍼(setup.exe)가 포함될 수 있습니다. 이 연습에서는 ClickOnce 배포에 필요한 두 매니페스트를 만듭니다. GenerateBootstrapper 작업을 사용하여 필수 구성 요소 부트스트래퍼를 만들 수 있습니다.
Mage.exe 명령줄 도구를 사용하여 애플리케이션을 배포하려면
ClickOnce 배포 파일을 저장할 디렉터리를 만듭니다.
방금 만든 배포 디렉터리에서 버전 하위 디렉터리를 만듭니다. 애플리케이션을 처음 배포하는 경우 버전 하위 디렉터리 이름을 1.0.0.0으로 지정합니다.
비고
배포 버전은 애플리케이션 버전과 구별될 수 있습니다.
실행 파일, 어셈블리, 리소스 및 데이터 파일을 포함하여 모든 애플리케이션 파일을 버전 하위 디렉터리에 복사합니다. 필요한 경우 추가 파일이 포함된 추가 하위 디렉터리를 만들 수 있습니다.
Windows SDK 또는 Visual Studio 명령 프롬프트를 열고 버전 하위 디렉터리로 변경합니다.
Mage.exe호출하여 애플리케이션 매니페스트를 만듭니다. 다음 문은 Intel x86 프로세서에서 실행되도록 컴파일된 코드에 대한 애플리케이션 매니페스트를 만듭니다.
mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
비고
현재 디렉터리를 나타내는 옵션 뒤의
-FromDirectory
점(.)을 포함해야 합니다. 점을 포함하지 않는 경우 애플리케이션 파일의 경로를 지정해야 합니다.Authenticode 인증서를 사용하여 애플리케이션 매니페스트에 서명합니다. 인증서 파일의 경로로 바꿉다
mycert.pfx
. 암호를 인증서 파일의 암호로 바꿉다.mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
Visual Studio 및 Windows SDK와 함께 배포되는 .NET Framework 4.6.2 SDK
mage.exe
부터는 CNG 및 Authenticode 인증서를 사용하여 매니페스트에 서명합니다. Authenticode 인증서와 동일한 명령줄 매개 변수를 사용합니다.배포 디렉터리의 루트로 변경합니다.
를 호출하여 배포 매니페스트를 생성합니다
Mage.exe
. 기본적으로Mage.exe
ClickOnce 배포를 설치된 애플리케이션으로 표시하여 온라인 및 오프라인으로 실행할 수 있습니다. 사용자가 온라인일 때만 애플리케이션을 사용할 수 있도록 하려면 값-Install
이 있는 옵션을 사용합니다false
. 기본값을 사용하고 사용자가 웹 사이트 또는 파일 공유에서 애플리케이션을 설치하는 경우 옵션 값-ProviderUrl
이 웹 서버 또는 공유에서 애플리케이션 매니페스트의 위치를 가리키는지 확인합니다.mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
Authenticode 또는 CNG 인증서를 사용하여 배포 매니페스트에 서명합니다.
mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
배포 디렉터리의 모든 파일을 배포 대상 또는 미디어에 복사합니다. 웹 사이트 또는 FTP 사이트의 폴더, 파일 공유 또는 CD-ROM일 수 있습니다.
애플리케이션을 설치하는 데 필요한 URL, UNC 또는 물리적 미디어를 사용자에게 제공합니다. URL 또는 UNC를 제공하는 경우 사용자에게 배포 매니페스트의 전체 경로를 제공해야 합니다. 예를 들어 AppToDeploy가 AppToDeploy 디렉터리에 배포되면
http://webserver01/
전체 URL 경로가 됩니다http://webserver01/AppToDeploy/AppToDeploy.application
.
MageUI.exe 그래픽 도구를 사용하여 애플리케이션을 배포하려면
ClickOnce 배포 파일을 저장할 디렉터리를 만듭니다.
방금 만든 배포 디렉터리에서 버전 하위 디렉터리를 만듭니다. 애플리케이션을 처음 배포하는 경우 버전 하위 디렉터리 이름을 1.0.0.0으로 지정합니다.
비고
배포 버전은 애플리케이션 버전과 다를 수 있습니다.
실행 파일, 어셈블리, 리소스 및 데이터 파일을 포함하여 모든 애플리케이션 파일을 버전 하위 디렉터리에 복사합니다. 필요한 경우 추가 파일이 포함된 추가 하위 디렉터리를 만들 수 있습니다.
MageUI.exe
그래픽 도구를 시작합니다.MageUI.exe
메뉴에서 파일, 새로 만들기, 애플리케이션 매니페스트를 선택하여 새 애플리케이션 매니페스트 를 만듭니다.
기본 이름 탭에서 이 배포의 이름 및 버전 번호를 입력합니다. 또한 x86과 같이 애플리케이션이 빌드되는 프로세서 를 지정합니다.
파일 탭을 선택한 다음 애플리케이션 디렉터리 텍스트 상자 옆에 있는 줄임표(...) 단추를 선택합니다. 폴더 찾아보기 대화 상자가 나타납니다.
애플리케이션 파일이 포함된 버전 하위 디렉터 리를 선택한 다음 확인을 선택합니다.
IIS(인터넷 정보 서비스)에서 배포할 경우 채울 때 .deploy 확장명이 없는 파일에 확장명 추가 확인란을 선택합니다.
채우기 단추로 이동하여 모든 애플리케이션 파일을 파일 목록에 추가합니다. 애플리케이션에 둘 이상의 실행 파일이 포함된 경우 파일 형식 드롭다운 목록에서 진입점을 선택하여 이 배포의 기본 실행 파일을 시작 애플리케이션으로 표시합니다. (애플리케이션에 하나의 실행 파일만 포함된 경우 애플리케이션이 해당 파일을
MageUI.exe
표시합니다.)필요한 사용 권한 탭을 선택하고 애플리케이션을 어설션하는 데 필요한 신뢰 수준을 선택합니다. 기본값은 대부분의 애플리케이션에 적합한 FullTrust입니다.
메뉴에서 파일, 다른 이름으로 저장을 선택합니다. 애플리케이션 매니페스트에 서명하라는 서명 옵션 대화 상자가 나타납니다.
파일 시스템에 파일로 저장된 인증서가 있는 경우 인증서 파일로 서명 옵션을 사용하고 줄임표(...) 단추를 사용하여 파일 시스템에서 인증서를 선택합니다. 그런 다음 인증서 암호를 입력합니다.
-또는-
인증서가 컴퓨터에서 액세스할 수 있는 인증서 저장소에 보관된 경우 저장된 인증서로 서명 옵션을 선택하고 제공된 목록에서 인증서를 선택합니다.
확인을 선택하여 애플리케이션 매니페스트에 서명합니다. 다른 이름으로 저장 대화 상자가 나타납니다.
다른 이름으로 저장 대화 상자에서 버전 디렉터리를 지정한 다음 저장을 선택합니다.
메뉴에서 파일, 새로 만들기, 배포 매니페스트 를 선택하여 배포 매니페스트를 만듭니다.
이름 탭에서 이 배포의 이름 및 버전 번호를 지정합니다(이 예제에서는 1.0.0.0). 또한 x86과 같이 애플리케이션이 빌드되는 프로세서 를 지정합니다.
설명 탭을 선택하고 게시자 및 제품에 대한 값을 지정합니다. (제품은 애플리케이션이 오프라인으로 사용하기 위해 클라이언트 컴퓨터에 설치할 때 Windows 시작 메뉴의 애플리케이션에 지정된 이름입니다.)
배포 옵션 탭을 선택하고 시작 위치 텍스트 상자에서 웹 서버 또는 공유에서 애플리케이션 매니페스트의 위치를 지정합니다. 예를 들어 \\myServer\myShare\AppToDeploy.application입니다.
이전 단계에서 확장명을
.deploy
추가한 경우 여기에서 .deploy 파일 이름 확장명 사용 도 선택합니다.업데이트 옵션 탭을 선택하고 이 애플리케이션을 업데이트할 빈도를 지정합니다. 애플리케이션이 자체적으로 업데이트를 확인하도록 설정되어 있는 경우, UpdateCheckInfo 확인란의 선택을 해제하십시오.
애플리케이션 참조 탭을 선택한 다음 매니페스트 선택 단추로 이동합니다. 열려 있는 대화 상자가 나타납니다.
이전에 만든 애플리케이션 매니페스트를 선택한 다음 열기를 선택합니다.
메뉴에서 파일, 다른 이름으로 저장을 선택합니다. 배포 매니페스트에 서명하라는 서명 옵션 대화 상자가 나타납니다.
파일 시스템에 파일로 저장된 인증서가 있는 경우 인증서 파일로 서명 옵션을 사용하고 줄임표(...) 단추를 사용하여 파일 시스템에서 인증서를 선택합니다. 그런 다음 인증서 암호를 입력합니다.
-또는-
인증서가 컴퓨터에서 액세스할 수 있는 인증서 저장소에 보관된 경우 저장된 인증서로 서명 옵션을 선택하고 제공된 목록에서 인증서를 선택합니다.
확인으로 이동하여 배포 매니페스트에 서명합니다. 다른 이름으로 저장 대화 상자가 나타납니다.
다른 이름으로 저장 대화 상자에서 한 디렉터리를 배포의 루트로 이동한 다음 저장을 선택합니다.
배포 디렉터리의 모든 파일을 배포 대상 또는 미디어에 복사합니다. 웹 사이트 또는 FTP 사이트의 폴더, 파일 공유 또는 CD-ROM일 수 있습니다.
애플리케이션을 설치하는 데 필요한 URL, UNC 또는 물리적 미디어를 사용자에게 제공합니다. URL 또는 UNC를 제공하는 경우 사용자에게 배포 매니페스트의 전체 경로를 제공해야 합니다. 예를 들어 AppToDeploy가 AppToDeploy 디렉터리에 배포되면
http://webserver01/
전체 URL 경로가 됩니다http://webserver01/AppToDeploy/AppToDeploy.application
.
다음 단계
새 버전의 애플리케이션을 배포해야 하는 경우 새 버전(예: 1.0.0.1)의 이름을 따서 명명된 새 디렉터리를 만들고 새 애플리케이션 파일을 새 디렉터리에 복사합니다. 다음으로, 이전 단계에 따라 새 애플리케이션 매니페스트를 만들고 서명하고 배포 매니페스트를 업데이트하고 서명해야 합니다. ClickOnce는 가장 높은 버전만 업데이트하며, 가장 왼쪽의 정수가 가장 중요하므로 Mage.exe
/-New
및 -Update
호출 모두에서 동일한 상위 버전을 지정해야 합니다.
MageUI.exe사용한 경우 배포 매니페스트를 열고 애플리케이션 참조 탭을 선택한 다음 매니페스트 선택 단추로 이동한 다음 업데이트된 애플리케이션 매니페스트를 선택하여 배포 매니페스트를 업데이트할 수 있습니다.