GenerateApplicationManifest 작업GenerateApplicationManifest Task

ClickOnceClickOnce 응용 프로그램 매니페스트 또는 네이티브 매니페스트를 생성합니다.Generates a ClickOnceClickOnce application manifest or a native manifest. 네이티브 매니페스트는 구성 요소의 고유 ID를 정의하고 구성 요소를 구성하는 모든 어셈블리와 파일을 식별하는 방식으로 구성 요소를 설명합니다.A native manifest describes a component by defining a unique identity for the component and identifying all assemblies and files that make up the component. ClickOnceClickOnce 응용 프로그램 매니페스트는 응용 프로그램의 진입점을 지정하고 응용 프로그램 보안 수준을 지정하여 네이티브 매니페스트를 확장합니다.A ClickOnceClickOnce application manifest extends a native manifest by indicating the entry point of the application, and specifying the application security level.

매개 변수Parameters

다음 표에서는 GenerateApplicationManifest 작업의 매개 변수에 대해 설명합니다.The following table describes the parameters for the GenerateApplicationManifest task.

매개 변수Parameter 설명Description
AssemblyName 선택적 String 매개 변수입니다.Optional String parameter.

생성된 매니페스트에 대한 어셈블리 ID의 Name 필드를 지정합니다.Specifies the Name field of the assembly identity for the generated manifest. 이 매개 변수를 지정하지 않으면 이름은 EntryPoint 또는 InputManifest 매개 변수에서 유추됩니다.If this parameter is not specified, the name is inferred from the EntryPoint or InputManifest parameters. 이름을 만들 수 없으면 작업에서 오류가 throw됩니다.If no name can be created, the task throws an error.
AssemblyVersion 선택적 String 매개 변수입니다.Optional String parameter.

생성된 매니페스트에 대한 어셈블리 ID의 Version 필드를 지정합니다.Specifies the Version field of the assembly identity for the generated manifest. 이 매개 변수를 지정하지 않으면 기본값 “1.0.0.0”이 사용됩니다.If this parameter is not specified, a default value of "1.0.0.0" is used.
ClrVersion 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램에 필요한 CLR(공용 언어 런타임 지원)의 최소 버전을 지정합니다.Specifies the minimum version of the Common Language Runtime (CLR) required by the application. 기본값은 빌드 시스템에서 사용 중인 CLR 버전입니다.The default value is the CLR version in use by the build system. 작업에서 네이티브 매니페스트를 생성할 경우 이 매개 변수가 무시됩니다.If the task is generating a native manifest, this parameter is ignored.
ConfigFile 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

응용 프로그램 구성 파일이 포함된 항목을 지정합니다.Specifies which item contains the application configuration file. 작업에서 네이티브 매니페스트를 생성할 경우 이 매개 변수가 무시됩니다.If the task is generating a native manifest, this parameter is ignored.
Dependencies 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

생성된 매니페스트에 대한 종속 어셈블리 집합을 정의하는 항목 목록을 지정합니다.Specifies an item list that defines the set of dependent assemblies for the generated manifest. 각 항목은 배포 상태 및 종속성 형식을 나타내는 항목 메타데이터를 통해 추가로 설명될 수 있습니다.Each item may be further described by item metadata to indicate additional deployment state and the type of dependence. 자세한 내용은 아래 “항목 메타데이터” 섹션을 참조하세요.For more information, see the "Item Metadata" section below.
Description 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램 및 구성 요소에 대한 설명을 지정합니다.Specifies the description for the application or component.
EntryPoint 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

생성된 매니페스트 어셈블리에 대한 진입점을 나타내는 단일 항목을 지정합니다.Specifies a single item that indicates the entry point for the generated manifest assembly.

ClickOnceClickOnce 응용 프로그램 매니페스트의 경우 이 매개 변수는 응용 프로그램 실행 시 시작되는 어셈블리를 지정합니다.For a ClickOnceClickOnce application manifest, this parameter specifies the assembly that starts when the application is run.
ErrorReportUrl 선택적 System.String 매개 변수입니다.Optional System.String parameter.

ClickOnce 설치의 오류 보고 중에 대화 상자에 표시되는 웹 페이지의 URL을 지정합니다.Specifies the URL of the Web page that is displayed in dialog boxes during error reports in ClickOnce installations.
FileAssociations 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

ClickOnce 배포 매니페스트와 연결된 하나 이상의 파일 형식 목록을 지정합니다.Specifies a list of one or more file type that are associated with the ClickOnce deployment manifest.

.NET Framework 3.5 이상을 대상으로 할 경우에만 유효한 파일 연결입니다.File associations only valid only when .NET Framework 3.5 or later is targeted.
Files 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

매니페스트에 포함할 파일입니다.The files to include in the manifest. 각 파일의 전체 경로를 지정합니다.Specify the full path for each file.
HostInBrowser 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

true의 경우 응용 프로그램이 브라우저에서 호스트됩니다(예: WPF 웹 브라우저 응용 프로그램).If true, the application is hosted in a browser (as are WPF Web Browser Applications).
IconFile 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

응용 프로그램 아이콘 파일을 나타냅니다.Indicates the application icon file. 응용 프로그램 아이콘은 생성된 응용 프로그램 매니페스트에 표시되고 [시작] 메뉴 및 [프로그램 추가/제거] 대화 상자에 사용됩니다.The application icon is expressed in the generated application manifest and is used for the Start Menu and Add/Remove Programs dialog. 이 입력을 지정하지 않으면 기본 아이콘이 사용됩니다.If this input is not specified, a default icon is used. 작업에서 네이티브 매니페스트를 생성할 경우 이 매개 변수가 무시됩니다.If the task is generating a native manifest, this parameter is ignored.
InputManifest 선택적 ITaskItem 매개 변수입니다.Optional ITaskItem parameter.

매니페스트 생성기에 대한 기본으로 사용되는 입력 XML 문서를 나타냅니다.Indicates an input XML document to serve as a base for the manifest generator. 이를 통해 응용 프로그램 보안 또는 사용자 지정 매니페스트 정의와 같은 구조화된 데이터가 출력 매니페스트에 반영될 수 있습니다.This allows structured data such as application security or custom manifest definitions to be reflected in the output manifest. XML 문서의 루트 요소는 asmv1 네임스페이스의 어셈블리 노드여야 합니다.The root element in the XML document must be an assembly node in the asmv1 namespace.
IsolatedComReferences 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

생성된 매니페스트에서 격리할 COM 구성 요소를 지정합니다.Specifies COM components to isolate in the generated manifest. 이 매개 변수는 “등록이 필요 없는 COM” 배포를 위해 COM 구성 요소를 격리하는 기능을 지원합니다.This parameter supports the ability to isolate COM components for "Registration Free COM" deployment. 이 기능은 표준 COM 등록 정의를 사용하여 매니페스트를 자동 생성하는 방식으로 작동합니다.It works by auto-generating a manifest with standard COM registration definitions. 그러나 이 기능이 제대로 작동하려면 COM 구성 요소가 빌드 컴퓨터에 등록되어야 합니다.However, the COM components must be registered on the build machine in order for this to function properly.
ManifestType 선택적 String 매개 변수입니다.Optional String parameter.

생성할 매니페스트의 형식을 지정합니다.Specifies which type of manifest to generate. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.This parameter can have the following values:

- Native
- ClickOnce

이 매개 변수를 지정하지 않으면 작업에서 기본적으로 ClickOnce가 사용됩니다.If this parameter is not specified, the task defaults to ClickOnce.
MaxTargetPath 선택적 String 매개 변수입니다.Optional String parameter.

ClickOnceClickOnce 응용 프로그램 배포에서 사용할 파일 경로의 최대 허용 가능한 길이를 지정합니다.Specifies the maximum allowable length of a file path in a ClickOnceClickOnce application deployment. 이 값을 지정하는 경우 응용 프로그램에서 각 파일 경로의 길이가 이 제한에 대해 확인됩니다.If this value is specified, the length of each file path in the application is checked against this limit. 제한을 초과하는 항목은 빌드 경고에서 발생합니다.Any items that exceed the limit will raise in a build warning. 이 입력이 지정되지 않거나 0으로 지정된 경우 검사가 수행되지 않습니다.If this input is not specified or is zero, then no checking is performed. 작업에서 네이티브 매니페스트를 생성할 경우 이 매개 변수가 무시됩니다.If the task is generating a native manifest, this parameter is ignored.
OSVersion 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램에 필요한 최소 OS(운영 체제) 버전을 지정합니다.Specifies the minimum required operating system (OS) version required by the application. 예를 들어 값 “5.1.2600.0”은 운영 체제가 Windows XP임을 나타냅니다.For example, the value "5.1.2600.0" indicates the operating system is Windows XP. 이 매개 변수를 지정하지 않으면 값 .NET Framework의 최소 지원 OS인 Windows 98 Second Edition을 나타내는 “4.10.0.0”이 사용됩니다.If this parameter is not specified, the value "4.10.0.0" is used, which indicates Windows 98 Second Edition, the minimum supported OS of the .NET Framework. 작업에서 네이티브 매니페스트를 생성할 경우 이 입력이 무시됩니다.If the task is generating a native manifest, this input is ignored.
OutputManifest 선택적 ITaskItem 출력 매개 변수입니다.Optional ITaskItem output parameter.

생성된 출력 매니페스트 파일의 이름을 지정합니다.Specifies the name of the generated output manifest file. 이 매개 변수를 지정하지 않으면 출력 파일의 이름이 생성된 매니페스트의 ID에서 유추됩니다.If this parameter is not specified, the name of the output file is inferred from the identity of the generated manifest.
Platform 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램의 대상 플랫폼을 지정합니다.Specifies the target platform of the application. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.This parameter can have the following values:

- AnyCPU
- x86
- x64
- Itanium

이 매개 변수를 지정하지 않으면 작업에서 기본적으로 AnyCPU가 사용됩니다.If this parameter is not specified, the task defaults to AnyCPU.
Product 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램의 이름을 지정합니다.Specifies the name of the application. 이 매개 변수를 지정하지 않으면 이름이 생성된 매니페스트의 ID에서 유추됩니다.If this parameter is not specified, the name is inferred from the identity of the generated manifest. 이 이름은 시작 메뉴의 바로 가기 이름에 사용되고 프로그램 추가/제거 대화 상자에 표시되는 이름의 일부입니다.This name is used for the shortcut name on the Start menu and is part of the name that appears in the Add or Remove Programs dialog box.
Publisher 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램의 게시자를 지정합니다.Specifies the publisher of the application. 이 매개 변수를 지정하지 않으면 이름이 등록된 사용자 또는 생성된 매니페스트의 ID에서 유추됩니다.If this parameter is not specified, the name is inferred from the registered user, or the identity of the generated manifest. 이 이름은 시작 메뉴의 폴더 이름에 사용되고 프로그램 추가/제거 대화 상자에 표시되는 이름의 일부입니다.This name is used for the folder name on the Start menu and is part of the name that appears in the Add or Remove Programs dialog box.
RequiresMinimumFramework35SP1 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

True인 경우 응용 프로그램에는 .NET Framework 3.5 SP1 이상의 최신 버전이 필요합니다.If true, the application requires the .NET Framework 3.5 SP1 or a more recent version.
TargetCulture 선택적 String 매개 변수입니다.Optional String parameter.

응용 프로그램의 문화권을 식별하고 생성된 매니페스트에 대한 어셈블리 ID의 Language 필드를 지정합니다.Identifies the culture of the application and specifies the Language field of the assembly identity for the generated manifest. 이 매개 변수를 지정하지 않으면 응용 프로그램은 문화권이 고정되어 있다고 가정합니다.If this parameter is not specified, it is assumed the application is culture invariant.
TargetFrameworkMoniker 선택적 String 매개 변수입니다.Optional String parameter.

대상 프레임워크 모니커를 지정합니다.Specifies the target framework moniker.
TargetFrameworkProfile 선택적 String 매개 변수입니다.Optional String parameter.

대상 프레임워크 프로필을 지정합니다.Specifies the target framework profile.
TargetFrameworkSubset 선택적 String 매개 변수입니다.Optional String parameter.

대상으로 지정할 .NET Framework 하위 집합의 이름을 지정합니다.Specifies the name of the .NET Framework subset to target.
TargetFrameworkVersion 선택적 String 매개 변수입니다.Optional String parameter.

프로젝트의 대상 .NET Framework를 지정합니다.Specifies the target .NET Framework of the project.
TrustInfoFile 선택적 ITaskItem 매개 변수입니다.Optional ITaskItem parameter.

응용 프로그램 보안을 지정하는 XML 문서를 나타냅니다.Indicates an XML document that specifies the application security. XML 문서의 루트 요소는 asmv2 네임스페이스의 trustInfo 노드여야 합니다.The root element in the XML document must be a trustInfo node in the asmv2 namespace. 작업에서 네이티브 매니페스트를 생성할 경우 이 매개 변수가 무시됩니다.If the task is generating a native manifest, this parameter is ignored.
UseApplicationTrust 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

True인 경우 Product, PublisherSupportUrl 속성은 응용 프로그램 매니페스트에 기록됩니다.If true, the Product, Publisher, and SupportUrl properties are written to the application manifest.

설명Remarks

이 작업은 위에 나와 있는 매개 변수 외에 Task 클래스에서 직접 상속하는 GenerateManifestBase 클래스의 매개 변수도 상속합니다.In addition to the parameters listed above, this task inherits parameters from the GenerateManifestBase class, which itself inherits from the Task class. Task 클래스의 매개 변수 목록에 대해서는 Task 기본 클래스를 참조하세요.For a list of the parameters of the Task class, see Task Base Class.

GenerateDeploymentManifest 작업을 사용하는 방법에 대한 자세한 내용은 GenerateApplicationManifest 작업을 참조하세요.For information about how to use the GenerateDeploymentManifest task, see GenerateApplicationManifest Task.

종속성 및 파일에 대한 입력을 항목 메타데이터로 추가로 데코레이팅하면 각 항목의 추가 배포 상태를 지정할 수 있습니다.The inputs for dependencies and files may be further decorated with item metadata to specify additional deployment state for each item.

항목 메타데이터Item Metadata

메타데이터 이름Metadata name 설명Description
DependencyType 종속성이 응용 프로그램 또는 필수 구성 요소와 함께 게시 및 설치되는지 여부를 나타냅니다.Indicates whether the dependency is published and installed with the application or a prerequisite. 이 메타데이터는 모든 종속성에 유효하지만 파일에 사용되지 않습니다.This metadata is valid for all dependencies, but is not used for files. 이 메타데이터의 사용 가능한 값은 다음과 같습니다.The available values for this metadata are:

- Install
- Prerequisite

Install이 기본값입니다.Install is the default value.
AssemblyType 종속성이 관리되는 어셈블리 또는 네이티브 어셈블리인지 나타냅니다.Indicates whether the dependency is a managed or a native assembly. 이 메타데이터는 모든 종속성에 유효하지만 파일에 사용되지 않습니다.This metadata is valid for all dependencies, but is not used for files. 이 메타데이터의 사용 가능한 값은 다음과 같습니다.The available values for this metadata are:

- Managed
- Native
- Unspecified

Unspecified가 기본값으로, 매니페스트 생성기가 자동으로 어셈블리 형식을 결정할 것임을 나타냅니다.Unspecified is the default value, which indicates that the manifest generator will determine the assembly type automatically.
Group 요청 시 추가 파일을 다운로드하기 위한 그룹을 나타냅니다.Indicates the group for downloading additional files on-demand. 그룹 이름은 응용 프로그램에서 정의되고 문자열을 사용할 수 있습니다.The group name is defined by the application and can be any string. 빈 문자열은 파일이 다운로드 그룹에 포함되지 않음을 나타내는 기본값입니다.An empty string indicates the file is not part of a download group, which is the default. 그룹에 포함되지 않은 파일은 초기 응용 프로그램 다운로드에 포함되지 않습니다.Files not in a group are part of the initial application download. 그룹에 포함된 파일은 System.Deployment.Application을 응용 프로그램에서 명시적으로 요청한 경우에만 다운로드됩니다.Files in a group are only downloaded when explicitly requested by the application using System.Deployment.Application.

이 메타데이터는 IsDataFilefalse인 모든 파일 및 DependencyTypeInstall인 모든 종속성에 유효합니다.This metadata is valid for all files where IsDataFile is false and all dependencies where DependencyType is Install.
TargetPath 생성된 매니페스트에서 경로를 정의하는 방법을 지정합니다.Specifies how the path should be defined in the generated manifest. 이 특성은 모든 파일에 유효합니다.This attribute is valid for all files. 이 특성을 지정하지 않으면 항목 사양이 사용됩니다.If this attribute is not specified, the item specification is used. 이 특성은 DependencyType 값이 Install인 모든 파일 및 종속성에 유효합니다.This attribute is valid for all files and dependencies with a DependencyType value of Install.
IsDataFile 파일이 데이터 파일인지 여부를 나타내는 Boolean 메타데이터 값입니다.A Boolean metadata value that indicates whether or not the file is a data file. 데이터 파일은 응용 프로그램 업데이트 간에 마이그레이션된다는 점에서 특별합니다.A data file is special in that it is migrated between application updates. 이 메타데이터는 파일에만 유효합니다.This metadata is only valid for files. 기본값은 False입니다.False is the default value.

예제Example

이 예제에서는 GenerateApplicationManifest 작업을 사용하여 ClickOnceClickOnce 응용 프로그램 매니페스트를 생성하고 GenerateDeploymentManifest 작업을 사용하여 단일 어셈블리가 포함된 응용 프로그램의 배포 매니페스트를 생성합니다.This example uses the GenerateApplicationManifest task to generate a ClickOnceClickOnce application manifest and the GenerateDeploymentManifest task to generate a deployment manifest for an application with a single assembly. 그런 다음 SignFile 작업을 사용하여 매니페스트에 서명합니다.It then uses the SignFile task to sign the manifests.

다음은 단일 프로그램에 대한 ClickOnceClickOnce 매니페스트가 생성되는 가장 간단할 수 있는 매니페스트 생성 시나리오를 보여 줍니다.This illustrates the simplest possible manifest generation scenario where ClickOnceClickOnce manifests are generated for a single program. 기본 이름 및 ID는 매니페스트에 대한 어셈블리에서 유추됩니다.A default name and identity are inferred from the assembly for the manifest.

참고

아래 예제에서는 매니페스트 생성 측면에 집합하도록 모든 응용 프로그램 이진 파일이 미리 빌드되어 있습니다.In the example below, all application binaries are pre-built in order to focus on manifest generation aspects. 이 예제에서는 완벽하게 작동하는 ClickOnceClickOnce 배포를 생성합니다.This example produces a fully working ClickOnceClickOnce deployment.

참고

이 어셈블리의 SignFile 작업에서 사용되는 Thumbprint 속성에 대한 자세한 내용은 SignFile 작업을 참조하세요.For more information on the Thumbprint property used in the SignFile task in this example, see SignFile Task.

<Project DefaultTargets="Build"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  

    <ItemGroup>  
        <EntryPoint Include="SimpleWinApp.exe" />  
    </ItemGroup>  

    <PropertyGroup>  
        <Thumbprint>  
             <!-- Insert generated thumbprint here -->  
        </Thumbprint>  
    </PropertyGroup>  

    <Target Name="Build">  

        <GenerateApplicationManifest  
            EntryPoint="@(EntryPoint)">  
            <Output  
                ItemName="ApplicationManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateApplicationManifest>  

        <GenerateDeploymentManifest  
            EntryPoint="@(ApplicationManifest)">  
            <Output  
                ItemName="DeployManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateDeploymentManifest>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(ApplicationManifest)"/>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(DeployManifest)"/>  

    </Target>  
</Project>  

예제Example

이 예제에서는 GenerateApplicationManifestGenerateDeploymentManifest 작업을 통해 단일 어셈블리가 포함된 응용 프로그램에 대한 ClickOnceClickOnce 응용 프로그램 및 배포 매니페스트를 생성하여 매니페스트의 이름과 ID를 지정합니다.This example uses the GenerateApplicationManifest and GenerateDeploymentManifest tasks to generate ClickOnceClickOnce application and deployment manifests for an application with a single assembly, specifying name and identity of manifests.

이 예제는 매니페스트의 이름 및 ID가 명시적으로 지정된다는 점을 제외하고 이전 예제와 비슷합니다.This example is similar to previous example except the name and identity of the manifests are explicitly specified. 또한 이 예제는 설치된 응용 프로그램이 아닌 온라인 응용 프로그램으로 구성됩니다.Also, this example is configured as an online application instead of an installed application.

참고

아래 예제에서는 매니페스트 생성 측면에 집합하도록 모든 응용 프로그램 이진 파일이 미리 빌드되어 있습니다.In the example below, all application binaries are pre-built in order to focus on manifest generation aspects. 이 예제에서는 완벽하게 작동하는 ClickOnceClickOnce 배포를 생성합니다.This example produces a fully working ClickOnceClickOnce deployment.

참고

이 어셈블리의 SignFile 작업에서 사용되는 Thumbprint 속성에 대한 자세한 내용은 SignFile 작업을 참조하세요.For more information on the Thumbprint property used in the SignFile task in this example, see SignFile Task.

<Project DefaultTargets="Build"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  

    <ItemGroup>  
        <EntryPoint Include="SimpleWinApp.exe" />  
    </ItemGroup>  

    <PropertyGroup>  
        <Thumbprint>  
             <!-- Insert generated thumbprint here -->  
        </Thumbprint>  
    </PropertyGroup>  

    <Target Name="Build">  

        <GenerateApplicationManifest  
            AssemblyName="SimpleWinApp.exe"  
            AssemblyVersion="1.0.0.0"  
            EntryPoint="@(EntryPoint)"  
            OutputManifest="SimpleWinApp.exe.manifest">  
            <Output  
                ItemName="ApplicationManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateApplicationManifest>  

        <GenerateDeploymentManifest  
                AssemblyName="SimpleWinApp.application"  
                AssemblyVersion="1.0.0.0"  
                EntryPoint="@(ApplicationManifest)"  
                Install="false"  
                OutputManifest="SimpleWinApp.application">  
                <Output  
                    ItemName="DeployManifest"  
                    TaskParameter="OutputManifest"/>  
        </GenerateDeploymentManifest>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(ApplicationManifest)"/>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(DeployManifest)"/>  

    </Target>  
</Project>  

예제Example

이 예제에서는 GenerateApplicationManifestGenerateDeploymentManifest 작업을 통해 여러 파일 및 어셈블리가 포함된 응용 프로그램에 대한 ClickOnceClickOnce 응용 프로그램 및 배포 매니페스트를 생성합니다.This example uses the GenerateApplicationManifest and GenerateDeploymentManifest tasks to generate ClickOnceClickOnce application and deployment manifests for an application with multiple files and assemblies.

참고

아래 예제에서는 매니페스트 생성 측면에 집합하도록 모든 응용 프로그램 이진 파일이 미리 빌드되어 있습니다.In the example below, all application binaries are pre-built in order to focus on manifest generation aspects. 이 예제에서는 완벽하게 작동하는 ClickOnceClickOnce 배포를 생성합니다.This example produces a fully working ClickOnceClickOnce deployment.

참고

이 어셈블리의 SignFile 작업에서 사용되는 Thumbprint 속성에 대한 자세한 내용은 SignFile 작업을 참조하세요.For more information on the Thumbprint property used in the SignFile task in this example, see SignFile Task.

<Project DefaultTargets="Build"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  

    <ItemGroup>  
        <EntryPoint Include="SimpleWinApp.exe" />  
    </ItemGroup>  

    <PropertyGroup>  
        <Thumbprint>  
             <!-- Insert generated thumbprint here -->  
        </Thumbprint>  
        <DeployUrl>  
            <!-- Insert the deployment URL here -->  
        </DeployUrl>  
        <SupportUrl>  
            <!-- Insert the support URL here -->  
        </SupportUrl>  
    </PropertyGroup>  

    <Target Name="Build">  

    <ItemGroup>  
        <EntryPoint Include="SimpleWinApp.exe"/>  
        <Dependency Include="ClassLibrary1.dll">  
            <AssemblyType>Managed</AssemblyType>  
            <DependencyType>Install</DependencyType>  
        </Dependency>  
        <Dependency Include="ClassLibrary2.dll">  
            <AssemblyType>Managed</AssemblyType>  
            <DependencyType>Install</DependencyType>  
            <Group>Secondary</Group>  
        </Dependency>  
        <Dependency Include="MyAddIn1.dll">  
            <AssemblyType>Managed</AssemblyType>  
            <DependencyType>Install</DependencyType>  
            <TargetPath>Addins\MyAddIn1.dll</TargetPath>  
        </Dependency>  
        <Dependency Include="ClassLibrary3.dll">  
            <AssemblyType>Managed</AssemblyType>  
            <DependencyType>Prerequisite</DependencyType>  
        </Dependency>  

        <File Include="Text1.txt">  
            <TargetPath>Text\Text1.txt</TargetPath>  
            <Group>Text</Group>  
        </File>  
        <File Include="DataFile1.xml ">  
            <TargetPath>Data\DataFile1.xml</TargetPath>  
            <IsDataFile>true</IsDataFile>  
        </File>  

        <IconFile Include="Heart.ico"/>  
        <ConfigFile Include="app.config">  
            <TargetPath>SimpleWinApp.exe.config</TargetPath>  
        </ConfigFile>  
        <BaseManifest Include="app.manifest"/>  
    </ItemGroup>  

    <Target Name="Build">  

        <GenerateApplicationManifest  
            AssemblyName="SimpleWinApp.exe"  
            AssemblyVersion="1.0.0.0"  
            ConfigFile="@(ConfigFile)"  
            Dependencies="@(Dependency)"  
            Description="TestApp"  
            EntryPoint="@(EntryPoint)"  
            Files="@(File)"  
            IconFile="@(IconFile)"  
            InputManifest="@(BaseManifest)"  
            OutputManifest="SimpleWinApp.exe.manifest">  
            <Output  
                ItemName="ApplicationManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateApplicationManifest>  

        <GenerateDeploymentManifest  
            AssemblyName="SimpleWinApp.application"  
            AssemblyVersion="1.0.0.0"  
            DeploymentUrl="$(DeployToUrl)"  
            Description="TestDeploy"  
            EntryPoint="@(ApplicationManifest)"  
            Install="true"  
            OutputManifest="SimpleWinApp.application"  
            Product="SimpleWinApp"  
            Publisher="Microsoft"  
            SupportUrl="$(SupportUrl)"  
            UpdateEnabled="true"  
            UpdateInterval="3"  
            UpdateMode="Background"  
            UpdateUnit="weeks">  
            <Output  
                ItemName="DeployManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateDeploymentManifest>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(ApplicationManifest)"/>  

        <SignFile  
            CertificateThumbprint="$(Thumbprint)"  
            SigningTarget="@(DeployManifest)"/>  

    </Target>  
</Project>  

예제Example

이 예제에서는 GenerateApplicationManifest 작업을 통해 응용 프로그램 Test.exe에 대한 네이티브 매니페스트를 생성하여 네이티브 구성 요소 Alpha.dll 및 격리된 COM 구성 요소 Bravo.dll을 참조합니다.This example uses the GenerateApplicationManifest task to generate a native manifest for application Test.exe, referencing native component Alpha.dll and an isolated COM component Bravo.dll.

이 예제에서는 Test.exe.manifest를 생성하여 등록이 필요 없는 COM을 활용하는 응용 프로그램 XCOPY를 배포 가능하도록 만듭니다.This example produces the Test.exe.manifest, making the application XCOPY deployable taking advantage of Registration Free COM.

참고

아래 예제에서는 매니페스트 생성 측면에 집합하도록 모든 응용 프로그램 이진 파일이 미리 빌드되어 있습니다.In the example below, all application binaries are pre-built in order to focus on manifest generation aspects. 이 예제에서는 완벽하게 작동하는 ClickOnceClickOnce 배포를 생성합니다.This example produces a fully working ClickOnceClickOnce deployment.

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  

    <ItemGroup>  
        <File Include="Test.exe" />  
        <Dependency Include="Alpha.dll">  
            <AssemblyType>Native</AssemblyType>  
            <DependencyType>Install</DependencyType>  
        </Dependency>  
        <ComComponent Include="Bravo.dll" />  
    </ItemGroup>  

    <Target Name="Build">  
        <GenerateApplicationManifest  
            AssemblyName="Test.exe"  
            AssemblyVersion="1.0.0.0"  
            Dependencies="@(Dependency)"  
            Files="@(File)"  
            IsolatedComReferences="@(ComComponent)"  
            ManifestType="Native">  
            <Output  
                ItemName="ApplicationManifest"  
                TaskParameter="OutputManifest"/>  
        </GenerateApplicationManifest>  

    </Target>  
</Project>  

참고 항목See Also

작업 Tasks
GenerateDeploymentManifest 작업 GenerateDeploymentManifest Task
SignFile 작업 SignFile Task
작업 참조Task Reference