Share via


GenerateApplicationManifest (Tarea)

Genera un manifiesto de aplicación de ClickOnce o un manifiesto nativo.Un manifiesto nativo describe un componente al definir una identidad única para dicho componente e identificar todos los ensamblados y archivos que conforman el componente.Un manifiesto de aplicación de ClickOnce extiende un manifiesto nativo indicando el punto de entrada de la aplicación y especificando el nivel de seguridad de la aplicación.

Parámetros

En la siguiente tabla se describen los parámetros de la tarea GenerateApplicationManifest.

Parámetro

Descripción

AssemblyName

Parámetro String opcional.

Especifica el campo Name de la identidad del ensamblado para el manifiesto generado.Si no se especifica este parámetro, el nombre se deduce de los parámetros EntryPoint o InputManifest.Si no se puede crear ningún nombre, la tarea produce un error.

AssemblyVersion

Parámetro String opcional.

Especifica el campo Version de la identidad del ensamblado para el manifiesto generado.Si no se especifica este parámetro, se utiliza un valor predeterminado de "1.0.0.0".

ClrVersion

Parámetro String opcional.

Especifica la versión mínima de Common Language Runtime (CLR) requerida por la aplicación.El valor predeterminado es la versión de CLR utilizada por el sistema de compilación.Si la tarea va a generar un manifiesto nativo, este parámetro se omite.

ConfigFile

Parámetro ITaskItem[] opcional.

Especifica el elemento que contiene el archivo de configuración de la aplicación.Si la tarea va a generar un manifiesto nativo, este parámetro se omite.

Dependencies

Parámetro ITaskItem[] opcional.

Especifica una lista de elementos que define el conjunto de ensamblados dependientes para el manifiesto generado.Cada elemento puede describirse con más detalle mediante metadatos del elemento para indicar el estado de implementación adicional y el tipo de dependencia.Para obtener más información, consulte la sección "Metadatos del elemento" abajo.

Description

Parámetro String opcional.

Especifica la descripción para la aplicación o componente.

EntryPoint

Parámetro ITaskItem[] opcional.

Especifica un elemento único que indica el punto de entrada para el ensamblado del manifiesto generado.

Para un manifiesto de aplicación de ClickOnce, este parámetro especifica el ensamblado que se inicializa cuando se ejecuta la aplicación.

ErrorReportUrl

Parámetro [String] opcional.

Especifica la dirección URL de la página web que se muestra en los cuadros de diálogo durante los informes de errores de las instalaciones ClickOnce.

FileAssociations

Parámetro ITaskItem[] opcional.

Especifica una lista de uno o varios tipos de archivo asociados al manifiesto de implementación de ClickOnce.

Las asociaciones de archivo son válidas únicamente cuando el destino es .NET Framework 3.5 o posterior.

Files

Parámetro ITaskItem[] opcional.

Los archivos que se incluirán en el manifiesto.Especifique la ruta de acceso completa para cada archivo.

HostInBrowser

Parámetro [Boolean] opcional.

Si es true, la aplicación se aloja en un explorador (como las aplicaciones de explorador web de WPF).

IconFile

Parámetro ITaskItem[] opcional.

Indica el archivo de icono de la aplicación.El icono de la aplicación se expresa en el manifiesto de aplicación generado y se utiliza para el menú Inicio y el cuadro de diálogo Agregar o quitar programas.Si no se especifica esta entrada, se utiliza un icono predeterminado.Si la tarea va a generar un manifiesto nativo, este parámetro se omite.

InputManifest

Parámetro ITaskItem opcional.

Indica un documento XML de entrada que sirve de base para la generación del manifiesto.De este modo, los datos estructurados como la seguridad de la aplicación o las definiciones personalizadas del manifiesto pueden reflejarse en el manifiesto de salida.El elemento raíz en el documento XML debe ser un nodo de ensamblado en el espacio de nombres asmv1.

IsolatedComReferences

Parámetro ITaskItem[] opcional.

Especifica los componentes COM que se aislarán en el manifiesto generado.Este parámetro permite aislar los componentes COM para la implementación de "COM sin registro".Funciona generando automáticamente un manifiesto con definiciones estándar de registro de COM.Sin embargo, los componentes COM se deben registrar en el equipo de compilación para que funcione correctamente.

ManifestType

Parámetro String opcional.

Especifica el tipo de manifiesto que se va a generar.Este parámetro puede tener los valores siguientes:

  • Native

  • ClickOnce

Si no se especifica este parámetro, la tarea tiene como valor predefinido ClickOnce.

MaxTargetPath

Parámetro String opcional.

Especifica la longitud máxima permitida de la ruta de acceso de un archivo en una implementación de aplicación ClickOnce.Si se especifica este valor, se comprobará la longitud de cada ruta de archivo en la aplicación respecto a este límite.Cualquier elemento que supere el límite producirá una advertencia de compilación.Si no se especifica esta entrada o es cero, no se realiza ninguna comprobación.Si la tarea va a generar un manifiesto nativo, este parámetro se omite.

OSVersion

Parámetro String opcional.

Especifica la versión mínima del sistema operativo (SO) necesaria para la aplicación.Por ejemplo, el valor "5.1.2600.0" indica que el sistema operativo es Windows XP.Si no se especifica este parámetro, se utiliza el valor "4.10.0.0" que indica Windows 98 Segunda edición, sistema operativo mínimo admitido de .NET Framework.Si la tarea va a generar un manifiesto nativo, este dato se omite.

OutputManifest

Parámetro de salida ITaskItem opcional.

Especifica el nombre del archivo de manifiesto de salida generado.Si no se especifica este parámetro, el nombre del archivo de salida se deduce de la identidad del manifiesto generado.

Platform

Parámetro String opcional.

Especifica la plataforma de destino de la aplicación.Este parámetro puede tener los valores siguientes:

  • AnyCPU

  • x86

  • x64

  • Itanium

Si no se especifica este parámetro, la tarea tiene como valor predefinido AnyCPU.

Product

Parámetro String opcional.

Especifica el nombre de la aplicación.Si no se especifica este parámetro, el nombre se deduce de la identidad del manifiesto generado.Este nombre se utiliza para el acceso directo del menú Inicio y forma parte del nombre que aparece en el cuadro de diálogo Agregar o quitar programas.

Publisher

Parámetro String opcional.

Especifica el editor de la aplicación.Si no se especifica este parámetro, el nombre se deduce del usuario registrado o de la identidad del manifiesto generado.Este nombre se utiliza para la carpeta del menú Inicio y forma parte del nombre que aparece en el cuadro de diálogo Agregar o quitar programas.

RequiresMinimumFramework35SP1

Parámetro Boolean opcional.

Si es true, la aplicación requiere .NET Framework 3.5 SP1 o una versión más reciente.

TargetCulture

Parámetro String opcional.

Identifica la referencia cultural de la aplicación y especifica el campo Language de la identidad del ensamblado para el manifiesto generado.Si no se especifica este parámetro, se supone que la referencia cultural de la aplicación es invariable.

TargetFrameworkMoniker

Parámetro [String] opcional.

Especifica el moniker de la versión de .NET Framework de destino.

TargetFrameworkProfile

Parámetro [String] opcional.

Especifica el perfil de la versión de .NET Framework de destino.

TargetFrameworkSubset

Parámetro [String] opcional.

Especifica el nombre del subconjunto de .NET Framework de destino.

TargetFrameworkVersion

Parámetro [String] opcional.

Especifica el perfil de .NET Framework de destino del proyecto.

TrustInfoFile

Parámetro ITaskItem opcional.

Indica un documento XML que especifica la seguridad de la aplicación.El elemento raíz en el documento XML debe ser un nodo trustInfo en el espacio de nombres asmv2.Si la tarea va a generar un manifiesto nativo, este parámetro se omite.

UseApplicationTrust

Parámetro [Boolean] opcional.

Si es true, las propiedades Product, Publisher y SupportUrl se escriben en el manifiesto de aplicación.

Comentarios

Además de los parámetros mencionados anteriormente, esta tarea hereda los parámetros de la clase GenerateManifest, que hereda de la clase Task.Para obtener una lista de los parámetros de la clase la clase Task, vea Task Base (Clase).

Para obtener información acerca de cómo se utiliza la tarea GenerateDeploymentManifest, vea GenerateApplicationManifest (Tarea).

Las entradas para las dependencias y archivos se pueden ampliar más con metadatos del elemento para especificar el estado de implementación adicional para cada elemento.

Metadatos de elementos

Nombre de los metadatos

Descripción

DependencyType

Indica si se publica e instala la dependencia con la aplicación o un requisito previo.Estos metadatos son válidos para todas las dependencias, pero no se utilizan para los archivos.Los valores disponibles para estos metadatos son:

  • Install

  • Prerequisite

El valor predeterminado es Install.

AssemblyType

Indica si la dependencia es un ensamblado administrado o nativo.Estos metadatos son válidos para todas las dependencias, pero no se utilizan para los archivos.Los valores disponibles para estos metadatos son:

  • Managed

  • Native

  • Unspecified

Unspecified es el valor predeterminado, que indica que el generador del manifiesto determinará automáticamente el tipo de ensamblado.

Group

Indica el grupo para la descarga adicional de archivos a petición.La aplicación define el nombre de grupo y puede ser cualquier cadena.Una cadena vacía indica que el archivo no forma parte de un grupo de descargas, que es el valor predeterminado.Los archivos que no pertenecen a un grupo forman parte de la descarga inicial de la aplicación.Los archivos que pertenecen a un grupo sólo se descargan previa solicitud explícita de la aplicación utilizando System.Deployment.Application.

Estos metadatos son válidos para todos los archivos donde IsDataFile es false y todas las dependencias donde DependencyType es Install.

TargetPath

Especifica cómo debería definirse la ruta de acceso en el manifiesto generado.Este atributo es válido para todos los archivos.Si no se especifica este atributo, se utiliza la especificación del elemento.Este atributo es válido para todos los archivos y dependencias con un valor DependencyType de Install.

IsDataFile

Un valor de metadatos Boolean que indica si el archivo es un archivo de datos.Un archivo de datos es especial en cuanto a que migra entre las actualizaciones de la aplicación.Estos metadatos solo son válidos para los archivos.El valor predeterminado es False.

Ejemplo

En este ejemplo se utiliza la tarea GenerateApplicationManifest para generar un manifiesto de aplicación de ClickOnce y la tarea GenerateDeploymentManifest para generar un manifiesto de implementación para una aplicación con un único ensamblado.A continuación, utiliza la tarea SignFile para firmar los manifiestos.

Esto ilustra el escenario de generación de manifiestos más sencillo posible donde los manifiestos de ClickOnce se generan para un único programa.Un nombre e identidad predeterminados se deducen del ensamblado para el manifiesto.

[!NOTA]

En el ejemplo siguiente, todos los archivos binarios de aplicación se compilan previamente para centrar la atención en aspectos de generación del manifiesto.En este ejemplo se produce una implementación de ClickOnce que funciona perfectamente.

[!NOTA]

Para obtener más información sobre la propiedad Thumbprint utilizada en la tarea SignFile en este ejemplo, vea SignFile (Tarea).

<Project DefaultTargets="Build"
    xmlns="https://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>

En este ejemplo se utilizan las tareas GenerateApplicationManifest y GenerateDeploymentManifest para generar los manifiestos de aplicación e implementación de ClickOnce para una aplicación con un único ensamblado, especificando el nombre y la identidad de los manifiestos.

Este ejemplo es similar al ejemplo anterior, excepto que el nombre y la identidad de los manifiestos están especificados explícitamente.También, este ejemplo se configura como una aplicación en pantalla en vez de una aplicación instalada.

[!NOTA]

En el ejemplo siguiente, todos los archivos binarios de aplicación se compilan previamente para centrar la atención en aspectos de generación del manifiesto.En este ejemplo se produce una implementación de ClickOnce que funciona perfectamente.

[!NOTA]

Para obtener más información sobre la propiedad Thumbprint utilizada en la tarea SignFile en este ejemplo, vea SignFile (Tarea).

<Project DefaultTargets="Build"
    xmlns="https://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>

En este ejemplo se utilizan las tareas GenerateApplicationManifest y GenerateDeploymentManifest para generar los manifiestos de aplicación e implementación de ClickOnce para una aplicación con varios archivos y ensamblados.

[!NOTA]

En el ejemplo siguiente, todos los archivos binarios de aplicación se compilan previamente para centrar la atención en aspectos de generación del manifiesto.En este ejemplo se produce una implementación de ClickOnce que funciona perfectamente.

[!NOTA]

Para obtener más información sobre la propiedad Thumbprint utilizada en la tarea SignFile en este ejemplo, vea SignFile (Tarea).

<Project DefaultTargets="Build"
    xmlns="https://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>

En este ejemplo se utiliza la tarea GenerateApplicationManifest para generar un manifiesto nativo para la aplicación Test.exe, haciendo referencia al componente Alpha.dll nativo y a un componente COM aislado Bravo.dll.

En este ejemplo se genera el manifiesto Test.exe., haciendo que la aplicación XCOPY se pueda implementar aprovechando el COM sin registro.

[!NOTA]

En el ejemplo siguiente, todos los archivos binarios de aplicación se compilan previamente para centrar la atención en aspectos de generación del manifiesto.En este ejemplo se produce una implementación de ClickOnce que funciona perfectamente.

<Project DefaultTargets="Build" xmlns="https://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>

Vea también

Referencia

GenerateDeploymentManifest (Tarea)

SignFile (Tarea)

Conceptos

Tareas de MSBuild

Otros recursos

Referencia de tareas de MSBuild