다음을 통해 공유


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

업데이트: 2007년 11월

매니페스트 생성 및 편집 도구(Mage.exe)는 응용 프로그램 매니페스트 및 배포 매니페스트의 생성과 편집을 지원하는 명령줄 도구입니다. Mage.exe는 명령줄 도구로서 배치 스크립트뿐 아니라 ASP.NET 응용 프로그램을 비롯한 Windows 기반 응용 프로그램에서도 실행할 수 있습니다.

Mage.exe 대신 그래픽 응용 프로그램인 MageUI.exe를 사용할 수도 있습니다. 자세한 내용은 매니페스트 생성 및 편집 도구, 그래픽 클라이언트(MageUI.exe)를 참조하십시오.

Mage.exe와 MageUI.exe는 다음을 비롯한 여러 위치에서 제공됩니다.

  • .NET Framework 2.0 SDK. .NET Framework 2.0 SDK는 Visual Studio 2005 설치 프로그램의 구성 요소로 포함되어 있으며, Microsoft에서 다운로드할 수도 있습니다.

  • Windows Vista용 Windows SDK. Windows Vista용 Windows SDK는 Microsoft 다운로드 센터에서 다운로드할 수 있습니다.

  • Visual Studio 2008. Mage.exe 및 MageUI.exe의 최신 버전이 Visual Studio 2008 설치 프로그램의 구성 요소로 포함되어 있습니다.

Mage [commands] [commandOptions]

매개 변수

다음 표에서는 Mage.exe에서 지원되는 명령을 보여 줍니다. 이러한 명령에서 지원되는 옵션에 대한 자세한 내용은 New 및 Update 명령 옵션 및 Sign 명령 옵션을 참조하십시오.

명령

설명

-cc, ClearApplicationCache

모든 온라인 전용 응용 프로그램의 다운로드한 응용 프로그램 캐시를 지웁니다.

-n, -NewfileType [newOptions]

지정한 형식의 새 파일을 만듭니다. 유효한 형식은 다음과 같습니다.

  • Deployment: 새 배포 매니페스트를 만듭니다.

  • Application: 새 응용 프로그램 매니페스트를 만듭니다.

이 명령에 추가 매개 변수를 지정하지 않으면 적절한 기본 태그 및 특성 값을 사용하여 적절한 형식의 파일이 만들어집니다.

다음 표에 나와 있는 –ToFile 옵션을 사용하여 새 파일의 이름과 경로를 지정할 수 있습니다.

응용 프로그램의 모든 어셈블리가 매니페스트의 <dependency> 섹션에 추가된 상태로 응용 프로그램 매니페스트를 만들려면 다음 표에서 설명하는 –FromDirectory 옵션을 사용합니다.

-u, -Update[filePath] [updateOptions]

매니페스트 파일에서 하나 이상의 항목을 변경합니다. 편집하는 파일의 형식은 지정할 필요가 없습니다. Mage.exe에서 휴리스틱 집합을 사용하여 파일을 검사하고 배포 매니페스트인지 아니면 응용 프로그램 매니페스트인지 확인합니다.

이미 인증서를 사용하여 파일에 서명한 경우 -Update를 사용하면 키 서명 블록이 제거됩니다. 이유는 키 서명에 파일의 해시가 포함되어 있으며 파일 렌더러를 수정하면 해시가 무효화되기 때문입니다.

다음 표에 나와 있는 –ToFile 옵션을 사용하여 기존 파일을 덮어쓰지 않고 새 파일 이름 및 경로를 지정할 수 있습니다.

-s, -Sign[signOptions]

인증서를 사용하여 파일에 서명합니다. 서명은 파일 내부에 XML 요소로 삽입됩니다.

-h, -?, -Help[verbose]

사용 가능한 모든 명령과 옵션에 대한 설명을 표시합니다. verbose를 지정하면 자세한 도움말을 볼 수 있습니다.

New 및 Update 명령 옵션

다음 표에서는 –New 및 –Update 명령에서 지원하는 옵션을 보여 줍니다.

옵션

기본값

적용 대상

설명

-appc, -AppCodeBasemanifestReference

배포 매니페스트

응용 프로그램 매니페스트 파일에 대한 URL 또는 파일 경로 참조를 삽입합니다. 이 파일은 응용 프로그램 매니페스트에 대한 전체 경로여야 합니다.

-appm, -AppManifestmanifestPath

배포 매니페스트

배포의 응용 프로그램 매니페스트에 대한 참조를 배포 매니페스트에 추가합니다.

manifestPath에서 가리키는 파일이 실제로 존재해야 하며, 그렇지 않으면 Mage.exe에서 오류가 발생합니다. manifestPath에서 참조하는 파일이 응용 프로그램 매니페스트가 아니면 Mage.exe에서 오류가 발생합니다.

-cf, -CertFilefilePath

모든 파일 형식

매니페스트에 서명하는 데 사용할 디지털 인증서의 위치를 지정합니다. 인증서에 암호가 필요한 경우 –Password 옵션을 이 옵션과 함께 사용할 수 있습니다.

-ch, -CertHashhashSignature

모든 파일 형식

클라이언트 컴퓨터의 개인 인증서 저장소에 저장되는 디지털 인증서의 해시를 지정합니다. 이 해시는 Windows 인증서 콘솔에서 표시되는 디지털 인증서의 지문 문자열에 해당합니다.

hashSignature에는 대문자와 소문자를 모두 사용할 수 있습니다. 이 매개 변수를 단일 문자열로 제공할 수도 있고, 지문의 각 8비트 단위 값을 공백으로 구분하여 전체 지문을 따옴표로 묶어 제공할 수도 있습니다.

-fd, -FromDirectorydirectoryPath

응용 프로그램 매니페스트

응용 프로그램 매니페스트를 directoryPath에 있는 모든 어셈블리 및 파일에 대한 설명으로 채웁니다. 여기에서 directoryPath는 배포할 응용 프로그램이 있는 디렉터리입니다. Mage.exe는 디렉터리에 있는 각 파일이 어셈블리인지 또는 정적 파일인지 결정합니다. 파일이 어셈블리인 경우에는 <dependency> 태그 및 installFrom 특성이 어셈블리 이름, 코드베이스 및 버전과 함께 응용 프로그램에 추가됩니다. 정적 파일인 경우에는 <file> 태그가 추가됩니다. Mage.exe는 또한 간단한 휴리스틱 집합을 사용하여 응용 프로그램의 주 실행 파일을 검색하고 이를 매니페스트에서 ClickOnce 응용 프로그램의 진입점으로 표시합니다.

Mage.exe에서는 파일을 "데이터" 파일로 자동으로 표시하지 않습니다. 이는 직접 수행해야 합니다. 자세한 내용은 방법: ClickOnce 응용 프로그램에 데이터 파일 포함을 참조하십시오.

또한 Mage.exe에서는 각 파일의 크기를 기반으로 파일에 대한 해시를 생성합니다. ClickOnce에서는 이러한 해시를 사용하여 매니페스트가 생성된 후 배포 파일이 무단으로 변경되지 않았는지 확인합니다. 배포 파일 중 변경된 파일이 있는 경우 –Update 명령 및 –FromDirectory 옵션을 사용하여 Mage.exe를 실행하면 모든 참조된 파일의 해시 및 어셈블리 버전이 업데이트됩니다.

-FromDirectory를 사용하면 directoryPath에 있는 모든 하위 디렉터리의 모든 파일이 포함됩니다.

–FromDirectory–Update 명령과 함께 사용할 경우 Mage.exe는 이 디렉터리에 더 이상 존재하지 않는 파일을 응용 프로그램 매니페스트에서 모두 제거합니다.

-i, -InstallwillInstall

true

배포 매니페스트

ClickOnce 응용 프로그램을 로컬 컴퓨터에 설치할지 여부 또는 웹에서 실행할지 여부를 지정합니다. 응용 프로그램을 설치하면 Windows의 시작 메뉴에 응용 프로그램이 표시됩니다. 유효한 값은 "true" 또는 "t"와 "false" 또는 "f"입니다.

–MinVersion 옵션을 지정하면 사용자 컴퓨터에 -MinVersion보다 이전 버전이 설치되어 있는 경우 -Install에 전달하는 값에 관계없이 응용 프로그램이 설치됩니다.

이 옵션은 -BrowserHosted 옵션과 함께 사용할 수 없습니다. 같은 매니페스트에 두 옵션을 모두 지정하려고 하면 오류가 발생합니다.

-mv, -MinVersion [version]

ClickOnce 배포 매니페스트에서 -Version 플래그에 지정되어 나열된 버전입니다.

배포 매니페스트

사용자가 실행할 수 있는 이 응용 프로그램의 최소 버전입니다. 이 플래그를 사용하면 응용 프로그램의 명명된 버전이 필수 업데이트가 됩니다. 주요 변경 내용 또는 심각한 보안 결함에 대한 업데이트가 포함된 제품 버전을 출시하는 경우 이 플래그를 사용하여 해당 업데이트를 필수적으로 설치해야 하고 이전 버전을 더 이상 실행할 수 없도록 지정할 수 있습니다.

version의 구문은 -Version 플래그에 대한 인수의 경우와 동일합니다.

-n, -NamenameString

배포

모든 파일 형식

응용 프로그램을 식별하는 데 사용되는 이름입니다. ClickOnce에서는 시작 메뉴(응용 프로그램 자체를 설치하도록 구성한 경우)와 권한 높이기 대화 상자에 응용 프로그램을 표시하는 데 이 이름을 사용합니다.

-pwd, -Passwordpasswd

모든 파일 형식

디지털 인증서로 매니페스트에 서명하는 데 사용되는 암호입니다. –CertFile 옵션과 함께 사용해야 합니다.

-p, ProcessorprocessorValue

msil

응용 프로그램 매니페스트

배포 매니페스트

이 배포가 실행될 마이크로프로세서 아키텍처입니다. 이 값은 특정 마이크로프로세서용으로 미리 컴파일된 어셈블리를 가진 하나 이상의 설치를 준비하는 경우에 필요합니다. 유효한 값으로는 msil, x86, ia64 및 amd64 등이 있습니다. msil(Microsoft intermediate language)을 지정하면 모든 어셈블리가 플랫폼에 종속되지 않고, 응용 프로그램이 처음 실행될 때 CLR(공용 언어 런타임)에서 JIT 컴파일을 수행합니다.

-pu,-ProviderUrlurl

배포 매니페스트

ClickOnce에서 응용 프로그램 업데이트를 확인할 URL을 지정합니다.

-pub, -PublisherpublisherName

응용 프로그램 매니페스트

배포 매니페스트

.NET Framework 3.5에 새로 추가되었습니다.

배포 또는 응용 프로그램 매니페스트의 설명 요소에 게시자 이름을 추가합니다. 응용 프로그램 매니페스트에서 사용하는 경우에는 "true" 또는 "t" 값을 갖는 -UseManifestForTrust를 함께 지정해야 합니다. 이렇게 하지 않으면 이 매개 변수에서 오류가 발생합니다.

-ti, -TimestampUriuri

응용 프로그램 매니페스트

배포 매니페스트

디지털 타임스탬프 서비스의 URL입니다. 매니페스트에 타임스탬프를 적용하면 응용 프로그램의 다음 버전을 배포하기 전에 디지털 인증서가 만료되어도 매니페스트에 다시 서명할 필요가 없습니다. 현재는 Verisign에서만 타임스탬프 서비스를 지원하므로 인수로 제공되는 URI는 "http://timestamp.verisign.com/scripts/timstamp.dll"이어야 합니다.

-tr, -TrustLevellevel

인트라넷

응용 프로그램 매니페스트

클라이언트 컴퓨터의 응용 프로그램에 부여할 신뢰 수준입니다. 유효한 값은 "Internet", "Intranet" 및 "FullTrust" 등입니다.

-t, -ToFilefilePath

  • 새로운 옵션

  • 배포: deploy.application

  • 응용 프로그램: application.exe.manifest

  • 업데이트:

  • 입력 파일입니다.

모든 파일 형식

생성 또는 수정된 파일의 출력 경로를 지정합니다.

–New를 사용할 때 –ToFile을 제공하지 않으면 현재 작업 디렉터리로 출력됩니다. –Update를 사용할 때 –ToFile을 제공하지 않으면 Mage.exe에서 파일을 입력 파일에 다시 기록합니다.

-u, -UseManifestForTrustwillUseForTrust

false

응용 프로그램 매니페스트

.NET Framework 3.5에 새로 추가되었습니다.

클라이언트에서 응용 프로그램이 실행될 때 응용 프로그램 매니페스트의 디지털 서명을 사용하여 신뢰 관련 결정을 내릴지 여부를 지정합니다. "true" 또는 "t"를 지정하면 응용 프로그램 매니페스트를 사용하여 신뢰 관련 결정을 내립니다. "false" 또는 "f"를 지정하면 배포 매니페스트의 서명이 사용됩니다.

-v, -VersionversionNumber

1.0.0.0

응용 프로그램 매니페스트

배포 매니페스트

배포의 버전입니다. 인수는 "N.N.N.N" 형식의 유효한 버전 문자열이어야 하며, 여기서 "N"은 부호 없는 32비트 정수입니다.

-wpf, -WPFBrowserApp isWPFApp

false

응용 프로그램 매니페스트

배포 매니페스트

.NET Framework 3.5에 새로 추가되었습니다.

응용 프로그램이 독립형 실행 파일이 아닌 Internet Explorer 내에 호스팅되는 WPF(Windows Presentation Foundation) 응용 프로그램인 경우에만 이 플래그를 사용합니다. 유효한 값은 "true" 또는 "t"와 "false" 또는 "f"입니다.

응용 프로그램 매니페스트의 경우 entryPoint 요소 아래에 hostInBrowser 특성을 삽입합니다.

배포 매니페스트의 경우 deployment 요소의 install 특성을 false로 설정하고 배포 매니페스트를 .xbap 확장명으로 저장합니다. 이 인수를 -Install 인수와 함께 지정하면 브라우저에서 호스팅되는 응용 프로그램을 오프라인 응용 프로그램으로 설치할 수 없으므로 오류가 발생합니다.

Sign 명령 옵션

다음 표에서는 –Sign 명령에서 지원하며 모든 파일 형식에 적용할 수 있는 옵션을 보여 줍니다.

옵션

설명

-cf, -CertFilefilePath

매니페스트에 서명하는 데 사용할 디지털 인증서의 위치를 지정합니다. 이 옵션을 –Password 옵션과 함께 사용할 수 있습니다.

-ch, -CertHashhashSignature

클라이언트 컴퓨터의 개인 인증서 저장소에 저장되는 디지털 인증서의 해시를 지정합니다. 이 해시는 Windows 인증서 콘솔에서 표시되는 디지털 인증서의 지문 속성에 해당합니다.

hashSignature에는 대문자와 소문자를 모두 사용할 수 있습니다. 이 매개 변수를 단일 문자열로 제공할 수도 있고, 지문의 각 8비트 단위 값을 공백으로 구분하여 전체 지문을 따옴표로 묶어 제공할 수도 있습니다.

-p, -Passwordpasswd

디지털 인증서로 매니페스트에 서명하는 데 사용되는 암호입니다. –CertFile 옵션과 함께 사용해야 합니다.

-t, -ToFilefilePath

생성 또는 수정된 파일의 출력 경로를 지정합니다.

설명

Mage.exe에 대한 모든 인수는 대/소문자를 구분하지 않습니다. 명령 및 옵션의 앞에 대시(-) 또는 슬래시(/)를 사용할 수 있습니다.

–Sign 명령과 함께 사용되는 모든 인수는 –New 또는 –Update 명령에도 함께 사용할 수 있습니다. 다음 두 명령은 서로 동일합니다.

mage –Sign c:\HelloWorldDeployment\HelloWorld.deploy –CertFile cert.pfx
mage –Update c:\HelloWorldDeployment\HelloWorld.deploy –CertFile cert.pfx

서명된 문서에서는 파일의 해시를 사용하여 서명이 문서에 대해 올바른지 확인하므로 서명은 마지막에 수행해야 하는 작업입니다. 서명된 파일이 변경되면 다시 서명해야 합니다. 이전에 서명된 문서에 다시 서명하는 경우 Mage.exe는 이전 서명을 새로운 서명으로 바꿉니다.

배포 매니페스트를 채우기 위해 –AppManifest 옵션을 사용하는 경우 Mage.exe는 현재 배포 버전에 기반한 이름을 가진 하위 디렉터리 내의 배포 매니페스트와 동일한 디렉터리에 응용 프로그램 매니페스트가 있는 것으로 가정하고 그에 따라 배포 매니페스트를 구성합니다. 응용 프로그램 매니페스트가 다른 위치에 있는 경우에는 –AppCodeBase 옵션을 사용하여 위치를 설정합니다.

응용 프로그램을 배포하기 전에 배포 및 응용 프로그램 매니페스트에 서명해야 합니다. 매니페스트 서명에 대한 지침은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조하십시오.

응용 프로그램 매니페스트에 대한 –TrustLevel 옵션에서는 클라이언트 컴퓨터에서 응용 프로그램을 실행하는 데 필요한 권한 집합을 지정합니다. 기본적으로 응용 프로그램의 신뢰 수준은 응용 프로그램의 URL이 속하는 영역을 기반으로 할당됩니다. 인터넷을 통해 배포된 응용 프로그램은 인터넷 영역에 배치되는 반면 회사 네트워크를 통해 배포된 응용 프로그램은 일반적으로 인트라넷 영역에 배치됩니다. 두 가지 보안 영역 모두 응용 프로그램에서 로컬 리소스에 액세스하는 데 제한이 있지만 인트라넷 영역이 인터넷 영역보다 약간 덜 제한적입니다. 완전 신뢰 영역에서는 컴퓨터의 로컬 리소스에 대해 응용 프로그램에 완전한 액세스가 부여됩니다. –TrustLevel 옵션을 통해 응용 프로그램을 이 영역에 배치하면 CLR의 트러스트 관리자 구성 요소가 이러한 높은 신뢰 수준을 부여할지 여부를 사용자에게 묻습니다. 응용 프로그램을 회사 네트워크를 통해 배포하는 경우에는 신뢰할 수 있는 응용 프로그램 배포를 사용하여 사용자에게 묻지 않고 응용 프로그램의 신뢰 수준을 높일 수 있습니다.

응용 프로그램 매니페스트에서는 사용자 지정 신뢰 섹션도 지원합니다. 이 섹션을 사용하면 응용 프로그램 실행에 필요한 특정 권한만 요청하도록 매니페스트를 구성할 수 있으므로 응용 프로그램에서 최소 권한만 요청하도록 하는 보안 원칙을 따르는 데 도움이 됩니다. Mage.exe에서는 사용자 지정 신뢰 섹션을 직접 추가할 수 없습니다. 텍스트 편집기, XML 파서 또는 그래픽 도구인 MageGUI.exe를 사용하여 이를 추가할 수 있습니다. MageGUI.exe를 사용하여 사용자 지정 신뢰 섹션을 추가하는 방법에 대한 자세한 내용은 매니페스트 생성 및 편집 도구, 그래픽 클라이언트(MageUI.exe)를 참조하십시오.

예제

다음 예제에서는 Mage(MageUI.Exe)의 사용자 인터페이스를 엽니다.

mage

다음 예제에서는 기본 배포 매니페스트 및 응용 프로그램 매니페스트를 만듭니다. 이러한 파일은 현재 작업 디렉터리에 각각 deploy.application 및 application.exe.manifest라는 이름으로 만들어집니다.

mage –New Deployment
mage –New Application
mage –New TrustLicense

다음 예제에서는HelloWorld 응용 프로그램 디렉터리에 있는 모든 어셈블리 및 리소스 파일로 채워진 응용 프로그램 매니페스트를 만듭니다.

mage –New Application –FromDirectory \bin -Version 1.0.0.0

다음 예제에서는 배포 이름 및 대상 마이크로프로세서를 지정하여 이전 예제를 계속 진행합니다. 또한 ClickOnce에서 업데이트를 확인할 URL을 지정합니다.

mage –New Application –FromDirectory \bin -Name "Hello, World! Application" –Version 1.0.0.0 –Processor "x86" –ProviderUrl http://internalserver/HelloWorld/

다음 예제에서는 Internet Explorer에 호스팅되는 WPF 응용 프로그램을 배포하기 위한 매니페스트 쌍을 만드는 방법을 보여 줍니다.

mage –New Application –FromDirectory \bin -Version 1.0.0.0 -WPFBrowserApp true
mage -New Deployment -AppManifest 1.0.0.0\application.manifest -WPFBrowserApp true

다음 예제에서는 응용 프로그램 매니페스트에서 가져온 정보로 배포 매니페스트를 업데이트하고 응용 프로그램 매니페스트의 위치에 대한 코드베이스를 설정합니다.

mage –Update HelloWorld.deploy –AppManifest 1.0.0.0\application.manifest –AppCodeBase http://internalserver/HelloWorld.deploy

다음 예제에서는 사용자가 설치한 버전에 업데이트를 적용하도록 배포 매니페스트를 편집합니다.

mage –Update c:\HelloWorldDeployment\HelloWorld.deploy –MinVersion 1.1.0.0

다음 예제에서는 다른 디렉터리에서 응용 프로그램 매니페스트를 검색하도록 배포 매니페스트를 설정합니다.

mage –Update HelloWorld.deploy –AppCodeBase http://anotherserver/HelloWorld/1.1.0.0/

다음 예제에서는 현재 작업 디렉터리에 있는 디지털 인증서를 사용하여 기존 배포 매니페스트에 서명합니다.

mage –Sign deploy.application –CertFile cert.pfx –Password <passwd>

참고 항목

작업

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

개념

신뢰할 수 있는 응용 프로그램 배포 개요

참조

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

SDK 명령 프롬프트