Partager via


Déploiement d’une solution VSTO à l’aide de Windows Installer

Résumé

Découvrez comment déployer un complément Microsoft Visual Studio Tools pour Office (VSTO) ou une solution au niveau du document à l’aide d’un projet Visual Studio Installer.

Wouter van Vugt, Code Counsel

Ted Pattison, Ted Pattison Group

Cet article a été mis à jour par Microsoft avec l’autorisation des auteurs d’origine.

S’applique à : Visual Studio Tools pour Office, Microsoft Office, Microsoft Visual Studio.

Vous pouvez développer une solution VSTO et déployer la solution à l’aide d’un package Windows Installer. Cette discussion inclut les étapes de déploiement d’un complément Office simple.

Méthodes de déploiement

ClickOnce peut facilement être utilisé pour créer des configurations pour vos compléments et solutions. Toutefois, il ne peut pas installer de compléments qui nécessitent des privilèges d’administration tels que des compléments au niveau de l’ordinateur.

Les compléments qui nécessitent des privilèges d’administration peuvent être installés à l’aide de Windows Installer, mais ils nécessitent plus d’efforts pour créer l’installation.

Pour obtenir une vue d’ensemble de la façon de déployer une solution VSTO à l’aide de ClickOnce, consultez Déployer une solution Office à l’aide de ClickOnce.

Déploiement de solutions Office ciblant le runtime VSTO

Les packages ClickOnce et Windows Installer doivent effectuer les mêmes tâches rudimentaires lors de l’installation d’une solution Office.

  1. Installez les composants requis sur l’ordinateur utilisateur.
  2. Déployez les composants spécifiques de la solution.
  3. Pour les compléments, créez des entrées de registre.
  4. Faites confiance à la solution pour l’autoriser à s’exécuter.

Composants requis requis sur l’ordinateur cible

Voici la liste des logiciels qui doivent être installés sur l’ordinateur pour exécuter des solutions VSTO :

  • Microsoft Office 2010 ou version ultérieure.
  • Microsoft .NET Framework 4 ou version ultérieure.
  • Outils Microsoft Visual Studio 2010 pour Office Runtime. Le runtime fournit un environnement qui gère les compléments et les solutions au niveau du document. Une version du runtime est fournie avec Microsoft Office, mais vous pouvez redistribuer une version spécifique avec votre complément.
  • Les assemblies d’interopérabilité primaires pour Microsoft Office, si vous n’utilisez pas de types d’interopérabilité incorporés.
  • Toutes les assemblages utilitaires référencés par les projets.

Composants spécifiques de la solution

Le package d’installation doit installer ces composants sur l’ordinateur de l’utilisateur :

  • Le document Microsoft Office, si vous créez une solution de niveau document.
  • L'assemblage de personnalisation et les assemblages nécessaires.
  • Composants supplémentaires tels que les fichiers de configuration.
  • Manifeste de l’application (.manifest).
  • Manifeste de déploiement (.vsto).

Entrées de Registre pour les compléments

Microsoft Office utilise des entrées de Registre pour localiser et charger des compléments. Ces entrées de Registre doivent être créées dans le cadre du processus de déploiement. Pour plus d’informations sur ces entrées de Registre, consultez Les entrées de Registre pour les compléments VSTO.

Les compléments Outlook qui affichent des zones de formulaire personnalisées nécessitent des entrées de Registre supplémentaires qui permettent d’identifier les zones de formulaire. Pour plus d’informations sur les entrées de Registre, consultez Les entrées de Registre pour les zones de formulaire Outlook.

Les solutions au niveau du document ne nécessitent aucune entrée de Registre. Au lieu de cela, les propriétés à l’intérieur du document sont utilisées pour localiser la personnalisation. Pour plus d’informations sur ces propriétés, consultez Vue d’ensemble des propriétés de document personnalisées.

Confiance en la solution VSTO

Pour qu’une personnalisation s’exécute, une solution doit être approuvée par l’ordinateur. Le complément peut être approuvé en signant le manifeste avec un certificat, en créant une relation d’approbation avec une liste d’inclusion ou en l’installant sur un emplacement approuvé sur l’ordinateur.

Pour plus d’informations sur l’obtention d’un certificat pour la signature, consultez Déploiement ClickOnce et Authenticode. Pour plus d’informations sur la confiance des solutions, consultez Approbation de solutions Office à l’aide de listes d’inclusion. Vous pouvez ajouter une entrée de liste d’inclusion avec une action personnalisée dans votre fichier Windows Installer. Pour plus d’informations sur l’activation de la liste d’inclusion, consultez Guide pratique pour configurer la sécurité de la liste d’inclusion.

Si aucune option n’est utilisée, une invite d’approbation s’affiche à l’utilisateur pour lui permettre de décider s’il faut approuver la solution.

Pour plus d’informations sur la sécurité liée aux solutions au niveau du document, consultez Octroi de la confiance aux documents.

Création d’un programme d’installation de base

Les modèles de projet d’installation et de déploiement sont inclus dans l’extension Projets Microsoft Visual Studio Installer qui est disponible en téléchargement.

Pour créer un programme d’installation pour une solution Office, ces tâches doivent être effectuées :

  • Ajoutez les composants de la solution Office qui seront déployés.
  • Pour les compléments au niveau de l’application, configurez les clés de Registre.
  • Configurez les composants requis afin qu’ils puissent être installés sur les ordinateurs des utilisateurs finaux.
  • Configurez les conditions de lancement pour vérifier que les composants requis requis sont disponibles. Les conditions de lancement peuvent être utilisées pour bloquer l’installation si toutes les conditions préalables requises ne sont pas installées.

La première étape consiste à créer le projet d’installation.

Pour créer le projet d’installation d’AddIn

  1. Ouvrez le projet Complément Office que vous souhaitez déployer. Pour cet exemple, nous utilisons un complément Excel appelé ExcelAddIn.

  2. Une fois le projet Office ouvert, dans le menu Fichier , développez Ajouter et cliquez sur Nouveau projet pour ajouter un nouveau projet.

  3. Dans la zone Nom , tapez OfficeAddInSetup.

Visual Studio ouvre l’Explorateur de systèmes de fichiers pour le nouveau projet d’installation. L’Explorateur de systèmes de fichiers vous permet d’ajouter des fichiers au projet d’installation.

Capture d’écran de l’Explorateur de systèmes de fichiers pour le projet d’installation

Figure 1 : Explorateur de systèmes de fichiers pour le projet d’installation

Le projet d’installation doit déployer ExcelAddIn. Vous pouvez configurer le projet d’installation pour cette tâche en ajoutant la sortie du projet ExcelAddIn au projet d’installation.

Pour ajouter la sortie du projet ExcelAddIn

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur OfficeAddInSetup, cliquez sur Ajouter , puis Sortie du projet.

  2. Dans la boîte de dialogue Ajouter un groupe de sortie de projet , sélectionnez ExcelAddIn dans la liste des projets et La sortie primaire.

  3. Cliquez sur OK pour ajouter la sortie du projet au projet d’installation.

    Capture d’écran de la boîte de dialogue Ajouter un groupe de sortie de projet d’installation

    Figure 2 : Boîte de dialogue Configurer le groupe de sortie de projet Ajouter un projet

Le projet d’installation doit déployer le manifeste de déploiement et le manifeste d’application. Ajoutez ces deux fichiers au projet d’installation en tant que fichiers autonomes à partir du dossier de sortie du projet ExcelAddIn.

Pour ajouter les manifestes de déploiement et d’application

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur OfficeAddInSetup, cliquez sur Ajouter, puis cliquez sur Fichier.

  2. Dans la boîte de dialogue Ajouter des fichiers , accédez au répertoire de sortie ExcelAddIn . En règle générale, le répertoire de sortie est le sous-dossier bin\rsous-dossier elease du répertoire racine du projet, en fonction de la configuration de build sélectionnée.

  3. Sélectionnez ExcelAddIn.vsto et ExcelAddIn.dll.manifest, puis cliquez sur Ouvrir pour ajouter ces deux fichiers au projet de configuration.

    Capture d’écran des manifestes d’application et de déploiement dans l’Explorateur de solutions

    Figure 3 : Manifestes d’application et de déploiement pour le complément dans l’Explorateur de solutions

Faire référence à ExcelAddIn inclut tous les composants dont ExcelAddIn a besoin. Ces composants doivent être exclus et déployés à l’aide de packages prérequis pour leur permettre d’être enregistrés correctement. En outre, les termes du contrat de licence logiciel doivent être affichés et acceptés avant le début de l’installation.

Pour exclure les dépendances du projet ExcelAddIn

  1. Dans l’Explorateur de solutions, dans le nœud OfficeAddInSetup , sélectionnez tous les éléments de dépendance sous l’élément Dépendances détectés , à l’exception de Microsoft .NET Framework ou d’un assembly qui se termine par *.Utilities.dll. Les assemblys d’utilitaires sont destinés à être déployés avec votre application.

  2. Cliquez avec le bouton droit sur le groupe et sélectionnez Propriétés.

  3. Dans la fenêtre Propriétés , remplacez la propriété Exclude par True pour exclure les assemblys dépendants du projet d’installation. Veillez à ne pas exclure d’assemblies d’utilitaires.

    Capture d’écran de l’Explorateur de solutions montrant les dépendances à exclure

    Figure 4 : Exclusion des dépendances

Vous pouvez configurer votre package Windows Installer pour installer les composants requis en ajoutant un programme d’installation, également appelé programme d’amorçage. Ce programme d’installation peut installer les composants requis, un processus appelé démarrage.

Pour ExcelAddIn, ces prérequis doivent être installés avant que le complément puisse s’exécuter correctement :

  • Version de Microsoft .NET Framework cible par la solution Office.
  • Outils Microsoft Visual Studio 2010 pour Office Runtime.

Pour configurer des composants dépendants en tant que prérequis

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet OfficeAddInSetup et sélectionnez Propriétés.

  2. La boîte de dialogue Pages de propriétés OfficeAddInSetup s’affiche.

  3. Cliquez sur le bouton Prérequis .

  4. Dans la boîte de dialogue Prérequis, sélectionnez la version correcte du .NET Framework et microsoft Visual Studio Tools pour Office Runtime.

    Capture d’écran de la boîte de dialogue Prérequis

    Figure 5 : Boîte de dialogue Prérequis

    Note

    Certains des packages prérequis configurés dans votre projet d’installation de Visual Studio dépendent de la configuration de build sélectionnée. Vous devez sélectionner les composants requis appropriés pour chaque configuration de build que vous utilisez.

Microsoft Office localise les compléments à l’aide de clés de Registre. Les clés de la ruche HKEY_CURRENT_USER sont utilisées pour inscrire le complément pour chaque utilisateur individuel. Les clés sous la ruche HKEY_LOCAL_MACHINE sont utilisées pour enregistrer le complément pour tous les utilisateurs de l'ordinateur. Pour plus d’informations sur les clés de Registre, consultez les entrées de Registre pour les compléments VSTO.

Pour configurer le Registre

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur OfficeAddInSetup.

  2. Développez l’affichage.

  3. Cliquez sur Registre pour ouvrir la fenêtre de l’éditeur de Registre.

  4. Dans l’éditeur Registry(OfficeAddInSetup), développez HKEY_LOCAL_MACHINE , puis Software.

  5. Supprimez la clé [Fabricant] trouvée sous HKEY_LOCAL_MACHINE\Software.

  6. Développez HKEY_CURRENT_USER , puis Software.

  7. Supprimez la clé [Fabricant] trouvée sous HKEY_CURRENT_USER\Software.

  8. Pour ajouter des clés de Registre pour l’installation du complément, cliquez avec le bouton droit sur la clé Hive utilisateur/machine , sélectionnez Nouvelle clé. Utilisez le texte Software pour le nom de la nouvelle clé. Cliquez avec le bouton droit sur la clé logicielle nouvellement créée et créez une clé avec le texte Microsoft.

  9. Utilisez un processus de création similaire pour établir l'intégralité de la hiérarchie de clés requise pour l'enregistrement de l'extension.

    Utilisateur/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Le nom de la société est souvent utilisé comme préfixe pour le nom du complément afin d'assurer son unicité.

  10. Cliquez avec le bouton droit sur la clé SampleCompany.ExcelAddIn , sélectionnez Nouveau, puis cliquez sur Valeur de chaîne. Utilisez la description textuelle du nom.

  11. Utilisez cette étape pour ajouter trois valeurs supplémentaires :

    • FriendlyName de type String
    • LoadBehavior de type DWORD
    • Manifeste de type String
  12. Cliquez avec le bouton droit sur la valeur Description dans l’éditeur de Registre, puis cliquez sur Fenêtre Propriétés. Dans la fenêtre Propriétés, entrez Excel Demo AddIn pour la propriété Value.

  13. Sélectionnez la clé FriendlyName dans l’éditeur de Registre. Dans la fenêtre Propriétés, remplacez la propriété Value par Excel Demo AddIn.

  14. Sélectionnez la clé LoadBehavior dans l’éditeur de Registre. Dans la fenêtre Propriétés, remplacez la propriété Valeur par 3. La valeur 3 pour LoadBehavior indique que le complément doit être chargé au démarrage de l’application hôte. Pour plus d’informations sur le comportement de chargement, consultez les entrées de Registre pour les compléments VSTO.

  15. Sélectionnez la clé manifeste dans l’éditeur de Registre. Dans la fenêtre Propriétés, remplacez la propriété Value par file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    Capture d’écran de l’éditeur de Registre

    Figure 6 : Configuration des clés de Registre

    Le runtime VSTO utilise cette clé de Registre pour localiser le manifeste de déploiement. La macro [TARGETDIR] est remplacée par le dossier dans lequel le complément est installé. La macro inclut le caractère \ de fin. Par conséquent, le nom de fichier du manifeste de déploiement doit être ExcelAddIn.vsto sans le caractère \. Le postfix vstolocal indique au runtime VSTO que le complément doit être chargé à partir de cet emplacement au lieu du cache ClickOnce. La suppression de ce suffixe entraînera la copie de la personnalisation dans le cache ClickOnce.

Avertissement

Vous devez être très prudent avec l’éditeur de Registre dans Visual Studio. Par exemple, si vous définissez accidentellement DeleteAtUninstall pour la clé incorrecte, vous pouvez supprimer une partie active du Registre, en laissant l’ordinateur utilisateur dans un état incohérent, voire pire, rompu.

Les versions 64 bits d’Office utilisent la ruche de Registre 64 bits pour rechercher des compléments. Pour inscrire des compléments sous la ruche de Registre 64 bits, la plateforme cible du projet d’installation doit être définie sur 64 bits uniquement.

  1. Sélectionnez le projet OfficeAddInSetup dans l’Explorateur de solutions.
  2. Accédez à la fenêtre Propriétés et définissez la propriété TargetPlatform sur x64.

L’installation d’un complément pour les versions 32 bits et 64 bits d’Office vous oblige à créer deux packages MSI distincts. Un pour 32 bits et un pour 64 bits.

Capture d’écran de la fenêtre Propriétés montrant la plateforme cible pour l’inscription de compléments avec Office 64 bits

Figure 7 : Plateforme cible pour l’inscription de compléments avec Office 64 bits

Si le package MSI est utilisé pour installer le complément ou la solution, il peut être installé sans les prérequis requis. Vous pouvez utiliser les conditions de lancement dans msi pour empêcher l’installation du complément si les conditions préalables ne sont pas installées.

Configurer une condition de lancement pour détecter le runtime VSTO

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur OfficeAddInSetup.

  2. Développez l’affichage.

  3. Cliquez sur Conditions de lancement.

  4. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), cliquez avec le bouton droit sur Configuration requise sur l’ordinateur cible, puis cliquez sur Ajouter une condition de lancement du Registre. Cette condition de recherche peut rechercher dans le Registre une clé installée par le runtime VSTO. La valeur de la clé est ensuite disponible pour les différents éléments du programme d’installation via une propriété nommée. La condition de lancement utilise la propriété définie par la condition de recherche pour rechercher une certaine valeur.

  5. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), sélectionnez la condition de recherche Search for RegistryEntry1 , cliquez avec le bouton droit sur la condition, puis sélectionnez Fenêtre Propriétés.

  6. Dans la fenêtre Propriétés , définissez ces propriétés :

    1. Définissez la valeur (Name) sur Search for VSTO 2010 Runtime.
    2. Remplacez la valeur de La propriété par VSTORUNTIMEREDIST.
    3. Définir la valeur de RegKey sur SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Laissez la propriété Racine définie sur vsdrrHKLM.
    5. Remplacez la propriété Value par Version.
  7. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), sélectionnez la condition de lancement Condition1 , cliquez avec le bouton droit sur la condition, puis sélectionnez Fenêtre Propriétés.

  8. Dans la fenêtre Propriétés, définissez ces propriétés :

    1. Définissez le paramètre (Nom) sur Vérifier la disponibilité du runtime VSTO 2010.

    2. Remplacez la valeur de la condition par VSTORUNTIMEREDIST>="10.0.30319 »

    3. Laissez la propriété InstallURL vide.

    4. Définissez le message sur Les outils Visual Studio 2010 pour Office Runtime ne sont pas installés. Veuillez exécuter Setup.exe pour installer le complément.

      Capture d’écran de la fenêtre des propriétés pour la condition de lancement Vérification de la disponibilité du runtime

      Figure 8 : Fenêtre des propriétés pour la condition de lancement de vérification de la disponibilité de l'environnement d'exécution

La condition de lancement ci-dessus vérifie explicitement la présence du runtime VSTO lorsqu’il est installé par le package de programme d’amorçage.

Configurer une condition de lancement pour détecter le runtime VSTO installé par Office

  1. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), cliquez avec le bouton droit sur Rechercher la machine cible, puis cliquez sur Ajouter une recherche dans le Registre.

  2. Sélectionnez la condition de recherche RegistryEntry1 , cliquez avec le bouton droit sur la condition, puis sélectionnez Fenêtre Propriétés.

  3. Dans la fenêtre Propriétés , définissez ces propriétés :

    1. Définissez la valeur (Name) sur Search for Office VSTO Runtime.
    2. Remplacez la valeur de Propriété par OfficeRuntime.
    3. Définissez la valeur de RegKey sur SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. Laissez la propriété Racine définie sur vsdrrHKLM.
    5. Remplacez la propriété Value par Version.
  4. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), sélectionnez la condition de lancement de la disponibilité VSTO 2010 Runtime définie précédemment, cliquez avec le bouton droit sur la condition, puis sélectionnez Fenêtre Propriétés.

  5. Remplacez la valeur de la propriété Condition par VSTORUNTIMEREDIST >="10.0.30319 » OR OFFICERUNTIME>="10.0.21022 ». Les numéros de version peuvent être différents pour vous en fonction des versions du runtime requises par votre complément.

    Capture d’écran de Propriétés Windows pour la condition de lancement

    Figure 9 : Propriétés Windows pour la vérification de la disponibilité de l'environnement d'exécution via Redist ou la condition de lancement d'Office

Si un complément cible .NET Framework 4 ou version ultérieure, les types à l’intérieur des assemblys PIA (Primary Interop Assemblys), référencés, peuvent être incorporés dans l’assembly VSTO.

Pour vérifier si les types d’interopérabilité seront incorporés dans votre complément, suivez les étapes suivantes :

  1. Développer le nœud Références dans l’Explorateur de solutions
  2. Sélectionnez l’une des références PIA, par exemple , Office.
  3. Affichez les fenêtres de propriétés en appuyant sur F4 ou en sélectionnant Propriétés dans le menu contextuel Assemblys.
  4. Vérifiez la valeur de la propriété Incorporer des types d’interopérabilité.

Si la valeur est définie sur True, les types sont incorporés et vous pouvez passer à la section Pour générer le projet d’installation .

Pour plus d’informations, consultez Équivalence de type et Types d’interopérabilité incorporés

Pour configurer les conditions de lancement afin de détecter les PIAs Office

  1. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), cliquez avec le bouton droit sur Configuration requise sur l’ordinateur cible, puis cliquez sur Ajouter une condition de lancement de Windows Installer. Cette condition de lancement recherche un PIA Office en recherchant l’ID de composant spécifique.

  2. Cliquez avec le bouton droit sur Rechercher le composant1 , puis cliquez sur Fenêtre Propriétés pour afficher les propriétés de la condition de lancement.

  3. Dans la fenêtre Propriétés, définissez ces propriétés :

    1. Modifiez la valeur de la propriété (Name) pour Rechercher l’Office Shared PIA
    2. Remplacez la valeur de ComponentID par l’ID de composant pour le composant Office que vous utilisez. Vous trouverez la liste des ID de composant dans le tableau ci-dessous, par exemple {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Remplacez la valeur de la propriété Property par HASSHAREDPIA.
  4. Dans l’éditeur Conditions de lancement (OfficeAddInSetup), cliquez avec le bouton droit sur Condition1 , puis cliquez sur Fenêtre Propriétés pour afficher les propriétés de la condition de lancement.

  5. Modifiez ces propriétés de Condition1 :

    1. Changez le (nom) à Vérifiez la disponibilité des PIA partagés d’Office.
    2. Remplacez la condition par HASSHAREDPIA.
    3. Laissez InstallUrl vide.
    4. La modification du composant Message en un composant obligatoire pour interagir avec Excel n’est pas disponible. Exécutez setup.exe.

    Capture d’écran de la fenêtre Propriétés de la condition de démarrage PIA partagée vérifiée d’Office

    Figure 10 : Fenêtre Propriétés pour la vérification de la condition de lancement d’Office Shared PIA

IDs de composants des assemblies d'interopérabilité principaux pour Microsoft Office

Assembly d’interopérabilité principale Office 2010 Office 2013 Office 2013 (64 bits) Office 2016 Office 2016 (64 bits)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B9CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Mot {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Balise intelligente {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Bureau partagé {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Projet {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Capture d’écran des conditions de lancement finales

Figure 11 : Conditions de lancement finales

Vous pouvez affiner davantage les conditions de lancement de l’installation d’ExcelAddIn. Par exemple, il peut être utile de vérifier si l’application Office cible réelle est installée.

Pour construire le projet d’installation

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet OfficeAddInSetup , puis cliquez sur Générer.
  2. À l’aide de l’Explorateur Windows, accédez au répertoire de sortie du projet OfficeAddInSetup et accédez au dossier Release ou Debug, en fonction de la configuration de build sélectionnée. Copiez tous les fichiers du dossier vers un emplacement auquel les utilisateurs peuvent accéder.

Pour tester la configuration d’ExcelAddIn

  1. Accédez à l’emplacement dans lequel vous avez copié OfficeAddInSetup .
  2. Double-cliquez sur le fichier setup.exe pour installer le complément OfficeAddInSetup . Acceptez les termes du contrat de licence logiciel qui s’affichent et terminez l'assistant d'installation pour installer le complément sur l'ordinateur de l'utilisateur.

La solution Excel Office doit installer et s’exécuter à partir de l’emplacement spécifié lors de l’installation.

Exigences supplémentaires pour les solutions au niveau du document

Le déploiement de solutions au niveau du document nécessite quelques étapes de configuration différentes dans le projet d’installation de Windows Installer.

Voici une liste des étapes de base requises pour déployer une solution au niveau du document :

  • Créez le projet d’installation de Visual Studio.
  • Ajoutez la sortie principale de votre solution au niveau du document. La sortie principale inclut également le document Microsoft Office.
  • Ajoutez les manifestes de déploiement et d’application sous forme de fichiers libres.
  • Excluez les composants dépendants du package d’installation (à l’exception des assemblys d’utilitaires).
  • Configurez les packages requis.
  • Configurez les conditions de lancement.
  • Générez le projet d’installation et copiez les résultats vers l’emplacement de déploiement.
  • Déployez la solution au niveau du document sur l’ordinateur utilisateur en exécutant la configuration.
  • Mettez à jour les propriétés de document personnalisées si nécessaire.

Modification de l’emplacement du document déployé

Les propriétés à l’intérieur d’un document Office sont utilisées pour localiser les solutions au niveau du document. Si le document est installé dans le même dossier que l’assembly VSTO, aucune modification n’est requise. Toutefois, s’il est installé dans un autre dossier, ces propriétés doivent être mises à jour pendant l’installation.

Pour plus d’informations sur ces propriétés de document, consultez Vue d’ensemble des propriétés de document personnalisées.

Pour modifier ces propriétés, vous devez utiliser une action personnalisée pendant l’installation.

L’exemple suivant utilise une solution au niveau du document appelée ExcelWorkbookProject et un projet d’installation appelé ExcelWorkbookSetup. Le projet ExcelWorkbookSetup est configuré à l’aide des mêmes étapes décrites ci-dessus, à l’exception de la définition des clés de Registre.

Pour ajouter le projet d’action personnalisé à votre solution Visual Studio

  1. Ajouter un nouveau projet console .NET à la solution en cliquant avec le bouton droit sur le projet de déploiement de documents Office dans l’Explorateur de solutions

  2. Développez Ajouter et cliquez sur Nouveau projet.

  3. Sélectionnez le modèle d’application console et nommez le projet AddCustomizationCustomAction.

    Capture d’écran de l’Explorateur de solutions - AddCustomizationCustomAction

    Figure 12 : Explorateur de solutions - AddCustomizationCustomAction

  4. Ajoutez une référence à ces assemblies :

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Copiez ce code dans Program.cs ou Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Pour ajouter la personnalisation au document, vous devez disposer de l’ID de solution de votre solution au niveau du document VSTO. Cette valeur est récupérée à partir du fichier projet Visual Studio.

Pour récupérer l’ID de solution

  1. Dans le menu Générer , cliquez sur Générer la solution pour générer la solution au niveau du document et ajouter la propriété ID de solution au fichier projet.

  2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet excelWorkbookProject au niveau du document

  3. Cliquez sur UnloadProject pour accéder au fichier projet à partir de Visual Studio.

    Capture d’écran de l’Explorateur de solutions déchargeant la solution de document Excel

    Figure 13 : Déchargement de la solution de document Excel

  4. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ExcelWorkbookProject , puis cliquez sur EditExcelWorkbookProject.vbproj ou Edit ExcelWorkbookProject.csproj.

  5. Dans l’éditeur ExcelWorkbookProject , recherchez l’élément SolutionID à l’intérieur de l’élément PropertyGroup .

  6. Copiez la valeur GUID de cet élément.

    Récupération de l’ID de solution

    Figure 14 : Récupération de l’ID de solution

  7. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ExcelWorkbookProject , puis cliquez sur Recharger le projet.

  8. Cliquez sur Oui dans la boîte de dialogue qui s’affiche pour fermer l’éditeur ExcelWorkbookProject .

  9. L’ID de solution sera utilisé dans l’action d’installation personnalisée.

La dernière étape consiste à configurer l’action personnalisée pour les étapes d’installation et de désinstallation .

Pour configurer le projet d’installation

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ExcelWorkbookSetup, développez Ajouter et cliquez sur Sortie du projet.

  2. Dans la boîte de dialogue Ajouter un groupe de sortie de projet, dans la liste Projet, cliquez sur AddCustomizationCustomAction.

  3. Sélectionnez Sortie principale , puis cliquez sur OK pour fermer la boîte de dialogue et ajouter l’assembly contenant l’action personnalisée au projet d’installation.

    Capture d’écran de l’action personnalisée du manifeste de document - Ajouter un groupe de sortie du projet

    Figure 15 : Action personnalisée du manifeste de document - Ajouter un groupe de sorties de projet

  4. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ExcelWorkbookSetup.

  5. Développez Affichage , puis cliquez sur Actions personnalisées.

  6. Dans l’éditeur Actions personnalisées (ExcelWorkbookSetup), cliquez avec le bouton droit sur Actions personnalisées , puis cliquez sur Ajouter une action personnalisée.

  7. Dans la boîte de dialogue Sélectionner un élément dans le projet , dans la liste Rechercher , cliquez sur Dossier d’application. Sélectionnez Sortie principale dans AddCustomizationCustomAction(active), puis cliquez sur OK pour ajouter l’action personnalisée à l’étape d’installation.

  8. Sous le nœud Installer, cliquez avec le bouton droit sur La sortie principale de AddCustomizationCustomAction(Active), puis cliquez sur Renommer. Nommez le document d’action personnalisé Copier le document dans Mes documents et joignez la personnalisation.

  9. Sous le nœud Désinstaller, cliquez avec le bouton droit sur La sortie principale de AddCustomizationCustomAction(Active), puis cliquez sur Renommer. Nommez l’action personnalisée Supprimer le document du dossier Documents.

    Capture d’écran de la fenêtre Actions personnalisées du manifeste de document

    Figure 16 : Actions personnalisées du manifeste de document

  10. Dans l’éditeur Actions personnalisées (ExcelWorkbookSetup), cliquez avec le bouton droit sur Copier le document dans Mes documents et joignez la personnalisation , puis cliquez sur Fenêtre Propriétés.

  11. Dans la fenêtre PropriétésCustomActionData, entrez l’emplacement de la DLL de personnalisation, le manifeste de déploiement et l’emplacement du document Microsoft Office. Le SolutionID est également nécessaire.

  12. Si vous souhaitez consigner des erreurs d’installation dans un fichier, incluez un paramètre LogFile. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Capture d’écran de l’action personnalisée pour copier le document dans la fenêtre Propriétés de mes documents

    Figure 17 : Action personnalisée pour copier le document dans mes documents

  13. L’action personnalisée pour la désinstallation a besoin du nom du document, vous pouvez le fournir à l’aide du même paramètre documentLocation dans CustomActionData

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Compilez et déployez le projet ExcelWorkbookSetup .

  15. Recherchez dans le dossier Mes documents et ouvrez le fichier ExcelWorkbookProject.xlsx.

Ressources additionnelles

Guide pratique pour installer Visual Studio Tools pour Office Runtime

Assemblies d’interopérabilité principaux Office

Entrées de Registre pour les compléments VSTO

Vue d’ensemble des propriétés de document personnalisées

Spécification de zones de formulaire dans le Registre Windows

Octroi d’une approbation aux documents

À propos des auteurs

Wouter van Vugt est un MVP Microsoft avec des technologies Office Open XML et un consultant indépendant qui se concentre sur la création d’applications d’entreprise Office (OBA) avec SharePoint, Microsoft Office et les technologies .NET associées. Wouter est un contributeur fréquent aux sites de la communauté des développeurs tels que MSDN. Il a publié plusieurs livres blancs et articles ainsi qu’un livre disponible en ligne intitulé Open XML : Explained e-book. Wouter est le fondateur de Code-Counsel, une société néerlandaise qui se concentre sur la fourniture de contenu technique de pointe via divers canaux. Vous pouvez en savoir plus sur Wouter en lisant son blog.

Ted Pattison est un MVP SharePoint, auteur, formateur et fondateur de Ted Pattison Group. À l’automne 2005, Ted a été embauché par le groupe Developer Platform Evangelism de Microsoft pour créer le programme de formation croissant des développeurs pour Windows SharePoint Services 3.0 et Microsoft Office SharePoint Server 2007. Depuis ce temps, Ted s’est entièrement concentré sur l’éducation des développeurs professionnels sur les technologies SharePoint 2007. Ted a terminé d’écrire un livre pour Microsoft Press intitulé Inside Windows SharePoint Services 3.0 qui se concentre sur la façon d’utiliser SharePoint comme plateforme de développement pour créer des solutions métier. Ted écrit également une colonne axée sur les développeurs pour MSDN Magazine intitulé Office Space.