Procédure pas à pas : déploiement de plusieurs solutions Office en un seul programme d'installation ClickOnce pour .NET Framework 4

Vous pouvez déployer plusieurs solutions Office dans un package unique pour simplifier l'installation et le processus de mise à jour. Cette opération nécessite de modifier et resigner les manifestes de déploiement et d'application après la publication et avant l'installation.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document et de niveau application pour Microsoft Office 2010 et la version 2007 de Microsoft® Office System. Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Cette procédure pas à pas décrit les tâches suivantes :

  • Création de deux solutions Office à déployer, et d'une solution Office comme projet de programme d'installation.

  • Modification du manifeste d'application du projet de programme d'installation pour installer deux solutions Office.

  • Nouvelle signature des manifestes d'application et de déploiement

Notes

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

-

Une édition de Visual Studio 2010 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez [Configuration d'un ordinateur pour développer des solutions Office](bb398242\(v=vs.100\).md).
  • Word 2007 ou Word 2010.

  • Outlook 2007 ou Outlook 2010.

  • Excel 2007 ou Excel 2010.

  • Ordinateur de test.

Création de plusieurs solutions Office

Commencez par créer trois projets Office, dont un qui fonctionne comme programme d'installation. Les deux autres seront déployés sur l'ordinateur de l'utilisateur final.

Pour créer et développer de nouveaux projets Word, Outlook et Excel

  1. Créez un projet au niveau du document Word pour .NET Framework 4. Nommez le projet ContosoInstaller et enregistrez-le dans le répertoire %USERPROFILE%\Documents\Visual Studio 2010\Projects.

    Le projet ContosoInstaller sera utilisé comme programme d'installation. Pour plus d'informations, consultez Comment : créer des projets Office dans Visual Studio.

  2. Dans la solution ContosoInstaller, ajoutez un projet au niveau de l'application Outlook intitulé ContosoOutlookAddIn et ajoutez votre code au projet Outlook.

  3. Dans la solution ContosoInstaller, ajoutez un projet au niveau du document Excel intitulé ContosoExcelWorkbook et ajoutez votre code au projet Excel.

Publication des solutions Office

Utilisez l'Assistant Publication ou la Page projet du Concepteur de projets pour publier les solutions Office sur l'ordinateur de développement.

Pour publier les projets Word, Outlook et Excel

  1. Publiez le projet ContosoInstaller dans le dossier c:\publish. Pour plus d'informations, consultez Comment : déployer une solution Office à l'aide de ClickOnce.

  2. Publiez le projet ContosoOutlookAddIn dans le dossier c:\publish.

  3. Publiez le projet ContosoExcelWorkbook dans le dossier c:\publish.

Modification du manifeste d'application

Utilisez l'éditeur XML de Visual Studio pour ajouter des dépendances d'installation, des fichiers, des points d'entrée et des assemblys au manifeste d'application. Le contenu d'un manifeste d'application est semblable à une nomenclature qui répertorie tout le contenu d'une zone ; un manifeste d'application recense tous les assemblys dépendants et requis, ainsi que les fichiers dont l'application a besoin. Le manifeste d'application d'une solution Office répertorie également les assemblys qui doivent être chargés par une application Office pour les compléments d'application et les personnalisations au niveau du document.

Ajout des dépendances d'installation

Modifiez le manifeste d'application pour installer les assemblys ContosoOutlookAddin et ContosoExcelWorkbook et supprimez les références à l'assembly ContosoInstaller.

Pour ajouter des dépendances d'installation au manifeste d'application

  1. Dans le dossier c:\publish\Application Files, déplacez le contenu des répertoires ContosoExcelWorkbook_1_0_0_0 et ContosoOutlookAddIn_1_0_0_0 vers le répertoire ContosoInstaller_1_0_0_0.

  2. Ouvrez les fichiers ContosoInstaller.dll.manifest, ContosoOutlookAddIn.dll.manifest, et ContosoExcelWorkbook.dll.manifest dans un éditeur XML.

  3. À partir du fichier ContosoOutlookAddIn.dll.manifest, copiez toutes les dépendances d'installation et de fichier, y compris ContosoOutlookAddIn.dll. Autrement dit, copiez toutes les dépendances qui commencent par <dependentAssembly dependencyType="install" ou <file name="app .config">. Le code suivant est le code que vous recherchez : seul l'élément <dsig:DigestValue> variera.

      <dependency>
        <dependentAssembly 
           dependencyType="install"
           allowDelayedBinding="true" 
           codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" 
           size="30816">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Common.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
                Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Ki0…</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true" 
          codebase="Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll"   
          size="47200">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Outlook.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral" 
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
                Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>050...</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install" 
          allowDelayedBinding="true"
          codebase="ContosoOutlookAddIn.dll"
          size="10240">
          <assemblyIdentity
            name="ContosoOutlookAddIn" 
            version="1.0.0.0" 
            language="neutral" 
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm=
                "urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm=
              "http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>i4e</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <file name="ContosoOutlookAddIn.dll.config" size="77">
        <hash>
          <dsig:Transforms>
            <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
          </dsig:Transforms>
          <dsig:DigestMethod 
             Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <dsig:DigestValue>w7W...</dsig:DigestValue>
        </hash>
      </file>
    
  4. Dans le fichier ContosoInstaller.dll.manifest, collez la dépendance d'installation ContosoOutlookAddIn.dll à la fin de la section de dépendance.

  5. À partir du fichier ContosoExcelWorkbook.dll.manifest, copiez toutes les dépendances d'installation et de fichier, y compris ContosoExcelWorkbook.dll et Microsoft.Office.Tools.Common.v4.0.Utilities.dll. Autrement dit, copiez toutes les dépendances qui commencent par <dependentAssembly dependencyType="install" ou <file name="app .config">. Le code suivant est semblable à celui que vous devez rechercher : seul l'élément <dsig:DigestValue> variera.

      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true"
          codebase="ContosoExcelWorkbook.dll"
          size="12800">
          <assemblyIdentity
            name="ContosoExcelWorkbook" 
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm=
                "urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm=
              "http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>i4e</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816">
          <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Ki0A9wOpes1YX5NaAvjmUeFSh0g=</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true" 
          codebase="Microsoft.Office.Tools.Excel.v4.0.Utilities.dll" 
          size="235104">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Excel.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
               Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Te/...</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <file name=" ContosoExcelWorkbook.dll.config" size="77">
        <hash>
          <dsig:Transforms>
            <dsig:Transform
             Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
          </dsig:Transforms>
          <dsig:DigestMethod 
            Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <dsig:DigestValue>w7W...</dsig:DigestValue>
        </hash>
      </file>
    
  6. Dans le fichier ContosoInstaller.dll.manifest, collez les dépendances d'installation à la fin de la section de dépendance.

  7. Dans le fichier ContosoInstaller.dll.manifest, supprimez les dépendances d'installation ContosoInstaller.dll et Microsoft.Office.Tools.Word.v4.0.Utilities.dll. Supprimez également les dépendances en double. Par exemple, vous avez peut-être copié plusieurs dépendances d'installation pour Microsoft.Office.Tools.Common.v4.0.Utilities.dll.

    Notes

    Si vous déployez une solution au niveau du document Word, conservez Microsoft.Office.Tools.Word.v4.0.Utilities.dll dans le manifeste final.

Ajout des points d'entrée

Modifiez le manifeste d'application pour charger les assemblys ContosoOutlookAddin et ContosoExcelWorkbook dans l'espace de noms <vstav3>.

Pour ajouter les points d'entrée dans l'espace de noms vstav3 au manifeste d'application

  1. Dans le fichier ContosoInstaller.dll.manifest, supprimez le texte entre les éléments </vstav3:entryPointsCollection> et <vstav3:entryPointsCollection>.

  2. Dans le fichier ContosoOutlookAddIn.dll.manifest, copiez le texte entre les éléments </vstav3:entryPointsCollection> et <vstav3:entryPointsCollection>. Le code suivant ressemble au code que vous recherchez.

          <vstav3:entryPoints>
            <vstav3:entryPoint
              class="ContosoOutlookAddIn.ThisAddIn">
              <assemblyIdentity
                name="ContosoOutlookAddIn"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
          </vstav3:entryPoints>
    

    Notes

    Si le complément de niveau application Outlook utilise une zone de formulaire, le point d'entrée Outlook doit être le dernier répertorié dans la section <vstav3:entryPoints>.

  3. Dans le fichier ContosoInstaller.dll.manifest, collez le code après l'élément <vstav3:entryPointsCollection>.

  4. Ajoutez l'attribut id à l'élément <vstav3:entryPoints> pour distinguer ce point d'entrée des autres.

          <vstav3:entryPoints id="ContosoOutlook">
    
  5. Dans le fichier ContosoExcelWorkbook.dll.manifest, copiez le texte entre les éléments </vstav3:entryPointsCollection> et <vstav3:entryPointsCollection>. Le code suivant ressemble au code que vous recherchez.

          <vstav3:entryPoints>
            <vstav3:entryPoint 
              class="ContosoExcelWorkbook.ThisWorkbook">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
               class="ContosoExcelWorkbook.Sheet1">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
              class="ContosoExcelWorkbook.Sheet2">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
              class="ContosoExcelWorkbook.Sheet3">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
          </vstav3:entryPoints>
    
  6. Dans le fichier ContosoInstaller.dll.manifest, collez le code après l'élément <vstav3:entryPointsCollection>.

  7. Ajoutez l'attribut id à l'élément <vstav3:entryPoints> pour distinguer ce point d'entrée des autres points d'entrée.

          <vstav3:entryPoints id="ContosoExcel">
    

Ajout des assemblys

Modifiez le manifeste d'application pour charger les assemblys ContosoOutlookAddin et ContosoExcelWorkbook dans l'espace de noms <vstov4>.

Pour ajouter les assemblys à l'espace de noms vstov4 dans le manifeste d'application

  1. Dans le fichier ContosoInstaller.dll.manifest, supprimez le texte entre les éléments </vstov4:customizations> et <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.

  2. Dans le fichier ContosoOutlookAddIn.dll.manifest, copiez le texte entre les éléments </vstov4:customizations> et <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">. Le code suivant est le code que vous recherchez.

            <vstov4:customization>
              <vstov4:appAddIn
                application="Outlook"
                loadBehavior="3"
                keyName="ContosoOutlookAddIn">
                <vstov4:friendlyName>
                  ContosoOutlookAddIn
                </vstov4:friendlyName>
                <vstov4:description>
                  ContosoOutlookAddIn - Outlook add-in created with
                  Visual Studio Tools for Office
                </vstov4:description>
              </vstov4:appAddIn>
            </vstov4:customization>
    
  3. Dans le fichier ContosoInstaller.dll.manifest, collez le code après l'élément <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.

  4. Ajoutez l'attribut id à l'élément <vstav3:customization> pour distinguer cette personnalisation des autres. Cet ID est le même ID ajouté à l'élément <vstav3:entryPoints> dans la procédure précédente.

            <vstov4:customization id="ContosoOutlook">
    
  5. Dans le fichier ContosoExcelWorkbook.dll.manifest, copiez le texte entre les éléments </vstov4:customizations> et <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">. Le code suivant est semblable au code que vous recherchez : seul l'élément <solutionId> variera.

            <vstov4:customization>
              <vstov4:document
                solutionId="73e" />
            </vstov4:customization>
    
  6. Dans le fichier ContosoInstaller.dll.manifest, collez le code après l'élément <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.

  7. Ajoutez l'attribut id à l'élément <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> pour distinguer cette personnalisation des autres. Cet ID est le même ID ajouté à l'élément <vstav3:entryPoints> dans la procédure précédente.

            <vstov4:customization id="ContosoExcel">
    

Modification du projet au niveau du document

Pour tous les projets au niveau du document d'un déploiement multi-projet, vous devez ajouter l'ID à la propriété de document personnalisée _AssemblyLocation. Cette section montre comment mettre à jour la propriété _AssemblyLocation dans le fichier ContosoExcelWorkbook.xlsx. Cette étape doit être répétée pour tous les projets au niveau du document.

Pour modifier _AssemblyLocation dans Excel ou Word 2010

  1. Dans Excel, cliquez sur l'onglet Fichier.

  2. Cliquez sur Informations.

  3. Cliquez sur la flèche déroulante Propriétés, puis sur Propriétés avancées.

  4. Cliquez sur l'onglet Custom.

  5. Dans le volet Propriétés, cliquez sur _AssemblyLocation.

  6. Dans la zone de texte Valeur, modifiez le texte (si du texte s'y trouve) de façon à supprimer |vstolocal et à ajouter |id=ContosoInstaller.

  7. Cliquez sur OK.

Pour modifier _AssemblyLocation dans Excel ou Word 2007

  1. Dans Excel, cliquez sur le bouton Microsoft Office.

  2. Pointez sur Préparer, puis cliquez sur Propriétés.

  3. Cliquez sur la flèche déroulante Propriétés du document, puis sur Propriétés avancées.

  4. Cliquez sur l'onglet Custom.

  5. Dans le volet Propriétés, cliquez sur _AssemblyLocation.

  6. Dans la zone de texte Valeur, modifiez le texte (si du texte s'y trouve) de façon à supprimer |vstolocal et à ajouter |id=ContosoInstaller.

  7. Cliquez sur OK.

Nouvelle signature des manifestes

Signez les manifestes d'application et de déploiement à l'aide d'un certificat. Cette opération garantit que les fichiers n'ont pas été falsifiés.

Pour resigner les manifestes d'application et de déploiement

  1. Copiez le fichier de certificat ContosoInstaller_TemporaryKey.pfx du répertoire de solution %USERPROFILE%\Documents\Visual Studio 2010\Projects\ContosoInstaller\ContosoInstaller dans le répertoire c:\publish\Application Files\ContosoInstaller_1_0_0_0.

  2. Ouvrez l'invite de commandes Visual Studio.

  3. Accédez au répertoire c:\publish\Application Files\ContosoInstaller_1_0_0_0.

  4. Signez le manifeste d'application modifié à l'aide de la commande suivante :

    mage -sign ContosoInstaller.dll.manifest -certfile ContosoInstaller_TemporaryKey.pfx
    

    Le message « ContosoInstaller.dll.manifest signé avec succès » s'affiche.

  5. Accédez au répertoire c:\publish.

  6. Mettez à jour et signez le manifeste de déploiement à l'aide de la commande suivante :

    mage -update ContosoInstaller.vsto -appmanifest "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller.dll.manifest" -certfile "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller_TemporaryKey.pfx"
    

    Le message « ContosoInstaller.vsto signé avec succès » s'affiche.

  7. Copiez le fichier ContosoInstaller.vsto vers le répertoire c:\publish\Application Files\ContosoInstaller_1_0_0_0.

Test du déploiement multi-projet

La procédure suivante garantit que le manifeste installe le complément Outlook et le classeur Excel.

Pour tester le déploiement multi-projet

  1. Copiez le répertoire c:\publish vers un ordinateur de test.

  2. Exécutez le programme d'installation pour installer le déploiement multi-projet.

    Le Programme d'installation de la personnalisation Microsoft Office apparaît.

  3. Cliquez sur Installer.

    La boîte de dialogue Programme d'installation de la personnalisation Microsoft Office affiche le message suivant : « La personnalisation Microsoft Office a été installée correctement ».

  4. Ouvrez Outlook pour vérifier que le complément fonctionne.

  5. Ouvrez le fichier de classeur Excel pour vérifier que la personnalisation au niveau du document fonctionne.

  6. Vérifiez que le déploiement multi-projet a une entrée unique dans la liste des applications installées.

    Ajout/Suppression de programmes dans Windows XP ou Programmes et fonctionnalités dans Windows Vista affichent ContosoInstaller.

Nettoyage du répertoire de publication

La procédure suivante supprime tous les fichiers inutiles du répertoire de publication.

Pour nettoyer le répertoire de publication

  1. Supprimez les fichiers suivants du répertoire c:\publish\Application Files\ContosoInstaller_1_0_0_0.

    • ContosoExcelWorkbook.dll.manifest

    • ContosoExcelWorkbook.vsto

    • ContosoInstaller.dll.deploy

    • ContosoInstaller.docx

    • ContosoInstaller_TemporaryKey.pfx

    • ContosoOutlookAddIn.dll.manifest

    • ContosoOutlookAddIn.vsto

  2. Supprimez les fichiers suivants du répertoire c:\publish.

    • ContosoExcelWorkbook.vsto

    • ContosoInstaller.docx

    • ContosoOutlookAddIn.vsto

Voir aussi

Tâches

Comment : signer de nouveau des manifestes d'application et de déploiement

Concepts

Sécurisation des applications ClickOnce

Déploiement avancé de solutions Office

Autres ressources

Déploiement de solutions Office

Historique des modifications

Date

Historique

Motif

Septembre 2010

Modification de %USERPROFILE%\Documents\Visual Studio 10\Projects en %USERPROFILE%\Documents\Visual Studio 2010\Projects.

Résolution des bogues de contenu.