Partager via


GenerateApplicationManifest, tâche

Mise à jour : novembre 2007

Génère un manifeste d'application ClickOnce ou un manifeste natif. Un manifeste natif décrit un composant en lui définissant une identité unique et en identifiant tous les assemblys et fichiers qui le composent. Un manifeste d'application ClickOnce étend un manifeste natif en indiquant le point d'entrée de l'application et en spécifiant le niveau de sécurité de l'application.

Paramètres

Le tableau suivant décrit les paramètres de la tâche GenerateApplicationManifest.

Paramètre

Description

AssemblyName

Paramètre String facultatif.

Spécifie le champ Name de l'identité de l'assembly pour le manifeste généré. Si ce paramètre n'est pas spécifié, le nom est inféré à partir des paramètres EntryPoint ou InputManifest. Si aucun nom ne peut être créé, la tâche génère une erreur.

AssemblyVersion

Paramètre String facultatif.

Spécifie le champ Version de l'identité de l'assembly pour le manifeste généré. Si ce paramètre n'est pas spécifié, la valeur par défaut "1.0.0.0" est utilisée.

ClrVersion

Paramètre String facultatif.

Indique la version minimale du Common Language Runtime requise par l'application. La valeur par défaut est la version du CLR utilisée par le système de génération. Si la tâche génère un manifeste natif, ce paramètre est ignoré.

ConfigFile

Paramètre ITaskItem[] facultatif.

Spécifie l'élément contenant le fichier de configuration de l'application. Si la tâche génère un manifeste natif, ce paramètre est ignoré.

Dependencies

Paramètre ITaskItem[] facultatif.

Spécifie une liste d'éléments qui définit l'ensemble d'assemblys dépendants du manifeste généré. Chaque élément peut être décrit plus en détail par les métadonnées d'élément pour indiquer l'état de déploiement supplémentaire et le type de dépendance. Pour plus d'informations, consultez la section « Métadonnées d'élément » ci-dessous.

Description

Paramètre String facultatif.

Spécifie la description de l'application ou du composant.

EntryPoint

Paramètre ITaskItem[] facultatif.

Spécifie un seul élément qui indique le point d'entrée de l'assembly de manifeste généré.

Pour un manifeste d'application ClickOnce, ce paramètre spécifie l'assembly qui démarre lors de l'exécution de l'application.

Files

Paramètre ITaskItem[] facultatif.

Fichiers à inclure dans le manifeste. Spécifiez le chemin d'accès complet à chaque fichier.

IconFile

Paramètre ITaskItem[] facultatif.

Indique le fichier icône de l'application. L'icône de l'application est exprimée dans le manifeste d'application généré et utilisée pour le menu Démarrer et la boîte de dialogue Ajouter ou supprimer des programmes. Si cette entrée n'est pas spécifiée, une icône par défaut est utilisée. Si la tâche génère un manifeste natif, ce paramètre est ignoré.

InputManifest

Paramètre ITaskItem facultatif.

Indique un document XML d'entrée qui sert de base au générateur de manifeste. Des données structurées telles que des définitions de manifeste personnalisées ou de sécurité d'application peuvent ainsi être reflétées dans le manifeste de sortie. L'élément racine du document XML doit être un nœud d'assembly dans l'espace de noms asmv1.

IsolatedComReferences

Paramètre ITaskItem[] facultatif.

Spécifie des composants COM à isoler dans le manifeste généré. Ce paramètre prend en charge l'isolation des composants COM pour le déploiement « COM sans inscription ». Cela consiste à générer automatiquement un manifeste avec des définitions d'inscription COM standard. Toutefois, les composants COM doivent être enregistrés sur l'ordinateur de génération pour que cela fonctionne correctement.

ManifestType

Paramètre String facultatif.

Spécifie le type de manifeste à générer. Ce paramètre peut avoir les valeurs suivantes :

  • Native

  • ClickOnce

Si ce paramètre n'est pas spécifié, la tâche sélectionne par défaut ClickOnce.

MaxTargetPath

Paramètre String facultatif.

Spécifie la longueur maximale autorisée d'un chemin d'accès dans le déploiement d'une application ClickOnce. Si cette valeur est spécifiée, la longueur de chaque chemin d'accès dans l'application est comparée à cette limite. Tout élément qui dépasse la limite entraîne un avertissement de génération. Si cette entrée n'est pas spécifiée ou est zéro, aucune vérification n'est effectuée. Si la tâche génère un manifeste natif, ce paramètre est ignoré.

OSVersion

Paramètre String facultatif.

Spécifie la version minimale de système d'exploitation requise par l'application. Par exemple, la valeur "5.1.2600.0 indique un système d'exploitation Windows XP. Si ce paramètre n'est pas spécifié, la valeur "4.10.0.0" est utilisée ; celle-ci représente Windows 98 Deuxième Édition, le système d'exploitation minimal pris en charge par le .NET Framework. Si la tâche génère un manifeste natif, cette entrée est ignorée.

OutputManifest

Paramètre de sortie ITaskItem facultatif.

Spécifie le nom du fichier manifeste de sortie généré. Si ce paramètre n'est pas spécifié, le nom du fichier de sortie est inféré à partir de l'identité du manifeste généré.

Platform

Paramètre String facultatif.

Spécifie la plate-forme cible de l'application. Ce paramètre peut avoir les valeurs suivantes :

  • AnyCPU

  • x86

  • x64

  • Itanium

Si ce paramètre n'est pas spécifié, la tâche sélectionne par défaut AnyCPU.

TargetCulture

Paramètre String facultatif.

Identifie la culture de l'application et spécifie le champ Language de l'identité de l'assembly pour le manifeste généré. Si ce paramètre n'est pas spécifié, il est supposé que l'application possède une culture dite indifférente.

TrustInfoFile

Paramètre ITaskItem facultatif.

Indique un document XML qui définit la sécurité de l'application. L'élément racine du document XML doit être un nœud trustInfo dans l'espace de noms asmv2. Si la tâche génère un manifeste natif, ce paramètre est ignoré.

Notes

Les entrées des dépendances et des fichiers peuvent être complétées par des métadonnées d'élément pour spécifier un état de déploiement supplémentaire pour chaque élément.

Métadonnées d'élément

Nom de métadonnées

Description

DependencyType

Indique si la dépendance est publiée et installée avec l'application ou un élément préalable requis. Ces métadonnées sont valides pour toutes les dépendances, mais elles ne sont pas utilisées pour les fichiers. Les valeurs disponibles pour ces métadonnées sont les suivantes :

  • Install

  • Prerequisite

Install est la valeur par défaut.

AssemblyType

Indique si la dépendance est un assembly managé ou natif. Ces métadonnées sont valides pour toutes les dépendances, mais elles ne sont pas utilisées pour les fichiers. Les valeurs disponibles pour ces métadonnées sont les suivantes :

  • Managed

  • Native

  • Unspecified

La valeur par défaut, Unspecified, indique que le générateur de manifeste détermine automatiquement le type d'assembly.

Group

Indique le groupe pour le téléchargement de fichiers supplémentaires à la demande. Le nom de groupe est défini par l'application et peut être une chaîne quelconque. Une chaîne vide indique que le fichier ne fait pas partie d'un groupe de téléchargement, ce qui représente la valeur par défaut. Les fichiers qui ne sont pas compris dans un groupe font partie du téléchargement d'application initial. Les fichiers d'un groupe sont téléchargés uniquement lorsque l'application le demande explicitement à l'aide de System.Deployment.Application.

Ces métadonnées sont valides pour tous les fichiers pour lesquels IsDataFile a la valeur false et toutes les dépendances pour lesquelles DependencyType a la valeur Install.

TargetPath

Spécifie comment le chemin d'accès doit être défini dans le manifeste généré. Cet attribut est valide pour tous les fichiers. Si cet attribut n'est pas spécifié, la spécification d'élément est utilisée. Cet attribut est valide pour tous les fichiers et dépendances dont DependencyType a la valeur Install.

IsDataFile

Valeur de métadonnées Boolean qui indique si le fichier est un fichier de données. Un fichier de données est spécial en cela qu'il est migré entre des mises à jour de l'application. Ces métadonnées sont uniquement valides pour les fichiers. False est la valeur par défaut.

Exemple

Cet exemple utilise la tâche GenerateApplicationManifest pour générer un manifeste d'application ClickOnce et la tâche GenerateDeploymentManifest pour générer un manifeste de déploiement d'une application avec un seul assembly. Il utilise ensuite la tâche SignFile pour signer les manifestes.

Cet exemple illustre le scénario de génération de manifeste le plus simple possible, qui prévoit la génération de manifeste ClickOnce pour un seul programme. Le nom et l'identité par défaut du manifeste sont inférés à partir de l'assembly.

Remarque :

Dans l'exemple ci-dessous, tous les fichiers binaires d'application sont prégénérés, ce qui permet de mettre l'accent sur la génération de manifeste. Cet exemple produit un déploiement ClickOnce entièrement fonctionnel.

Remarque :

Pour plus d'informations sur la propriété Thumbprint utilisée dans la tâche SignFile de cet exemple, consultez SignFile, tâche.

<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>

Cet exemple utilise les tâches GenerateApplicationManifest et GenerateDeploymentManifest pour générer des manifestes de déploiement et d'application ClickOnce pour une application comptant un seul assembly, en spécifiant le nom et l'identité des manifestes.

Il est semblable à un exemple précédent si ce n'est que le nom et l'identité des manifestes sont explicitement spécifiés. En outre, l'exemple est configuré comme une application en ligne et non une application installée.

Remarque :

Dans l'exemple ci-dessous, tous les fichiers binaires d'application sont prégénérés, ce qui permet de mettre l'accent sur la génération de manifeste. Cet exemple produit un déploiement ClickOnce entièrement fonctionnel.

Remarque :

Pour plus d'informations sur la propriété Thumbprint utilisée dans la tâche SignFile de cet exemple, consultez SignFile, tâche.

<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>

Cet exemple utilise les tâches GenerateApplicationManifest et GenerateDeploymentManifest pour générer des manifestes de déploiement et d'application ClickOnce pour une application comptant plusieurs fichiers et assemblys.

Remarque :

Dans l'exemple ci-dessous, tous les fichiers binaires d'application sont prégénérés, ce qui permet de mettre l'accent sur la génération de manifeste. Cet exemple produit un déploiement ClickOnce entièrement fonctionnel.

Remarque :

Pour plus d'informations sur la propriété Thumbprint utilisée dans la tâche SignFile de cet exemple, consultez SignFile, tâche.

<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>

Cet exemple utilise la tâche GenerateApplicationManifest pour générer un manifeste natif de l'application Test.exe, en référençant le composant natif Alpha.dll et un composant COM isolé Bravo.dll.

Cet exemple crée Test.exe.manifest, qui permet de déployer l'application XCOPY dans un déploiement COM sans inscription.

Remarque :

Dans l'exemple ci-dessous, tous les fichiers binaires d'application sont prégénérés, ce qui permet de mettre l'accent sur la génération de manifeste. Cet exemple produit un déploiement ClickOnce entièrement fonctionnel.

<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>

Voir aussi

Concepts

Tâches MSBuild

Référence

GenerateDeploymentManifest, tâche

SignFile, tâche

Autres ressources

Référence des tâches MSBuild