Partager via


Procédure pas à pas : copie d'un document sur l'ordinateur de l'utilisateur final après une installation ClickOnce

À l'aide d'une action de post-déploiement ClickOnce, vous pouvez installer des solutions Office au niveau du document, puis copiez le document sur l'ordinateur de l'utilisateur final. Cette opération nécessite de modifier le manifeste de l'application, et de resigner à la fois les manifestes de déploiement et d'application 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 d'une solution Office à déployer.

  • Implémentation d'une action de post-déploiement qui copie un document vers le Bureau de l'utilisateur final.

  • Modification du manifeste de l'application de la solution Office pour exécuter l'action de post-déploiement.

  • 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).
  • Excel 2007 ou Excel 2010.

  • Ordinateur de test.

Création d'un projet

Commencez par créer un projet de classeur Excel.

Pour créer un nouveau projet Excel

  • Créez un projet au niveau du document Excel. Nommez le projet ExcelWorkbook et enregistrez-le dans le répertoire %USERPROFILE%\Documents\Visual Studio 2010\Projects. Pour plus d'informations, consultez Comment : créer des projets Office dans Visual Studio.

    Visual Studio ouvre le nouveau classeur Excel dans le concepteur et ajoute le projet ExcelWorkbook à l'Explorateur de solutions.

Création d'un projet de bibliothèque de classes qui définit l'action de post-déploiement

Vous devez définir l'action de post-déploiement dans une bibliothèque de classes séparée. L'action de post-déploiement effectue des copies du document vers l'ordinateur de l'utilisateur final.

Pour créer une bibliothèque de classes pour l'action de post-déploiement

  1. Dans le menu Fichier, pointez sur Ajouter, puis cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Ajouter un nouveau projet, dans le volet Modèles installés, cliquez sur Fenêtres.

  3. Dans le volet Modèles, cliquez sur Bibliothèque de classes.

  4. Dans le champ Nom, tapez FileCopyPDA, puis cliquez sur OK.

  5. Dans l'Explorateur de solutions, cliquez sur FileCopyPDA.

  6. Dans le menu Projet, cliquez sur Ajouter une référence.

  7. Dans la boîte de dialogue Ajouter une référence, dans l'onglet .NET, ajoutez les références suivantes :

    • Si votre projet Excel cible .NET Framework 3.5, ajoutez des références à Microsoft.VisualStudio.Tools.Applications.Runtime.v10.0 et Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.

    • Si votre projet Excel cible le .NET Framework 4, ajoutez des références à Microsoft.VisualStudio.Tools.Applications.Runtime et Microsoft.VisualStudio.Tools.Applications.ServerDocument.

  8. Dans le fichier de code Class1, ajoutez les instructions suivantes using ou Imports en haut du fichier de code.

    Imports Microsoft.VisualStudio.Tools.Applications.Deployment
    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications.Deployment;
    using Microsoft.VisualStudio.Tools.Applications;
    using System.IO;
    
  9. Renommez la classe FileCopyPDA, puis ajoutez le code suivant à la classe FileCopyPDA. Ce code indique que la classe FileCopyPDA hérite de IAddInPostDeploymentAction.

    Public Class FileCopyPDA
        Implements IAddInPostDeploymentAction
    
    public class FileCopyPDA : IAddInPostDeploymentAction
    
  10. Ajoutez le code suivant pour implémenter la méthode IAddInPostDeploymentAction.Execute. Ce code exécute les tâches suivantes :

    • Copie le fichier de classeur Excel sur le Bureau de l'utilisateur si la solution est installée ou mise à jour.

    • Remplace la propriété _AssemblyLocation d'un chemin d'accès relatif en un chemin qualifié complet pour le manifeste de déploiement. Cette opération est effectuée à l'aide des méthodes AddCustomization et RemoveCustomization.

    • Supprime le fichier si la solution est désinstallée.

      Notes

      L'action de post-déploiement est exécutée lors de l'étape de désinstallation de .NET Framework 3.5.

    Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute
        Dim dataDirectory As String = "Data\ExcelWorkbook.xlsx"
        Dim file As String = "ExcelWorkbook.xlsx"
        Dim sourcePath As String = args.AddInPath
        Dim deploymentManifestUri As Uri = args.ManifestLocation
        Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
        Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory)
        Dim destFile As String = System.IO.Path.Combine(destPath, file)
    
        Select Case args.InstallationStatus
            Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update
                System.IO.File.Copy(sourceFile, destFile)
                ServerDocument.RemoveCustomization(destFile)
                ServerDocument.AddCustomization(destFile, deploymentManifestUri)
                Exit Select
            Case AddInInstallationStatus.Uninstall
                If System.IO.File.Exists(destFile) Then
                    System.IO.File.Delete(destFile)
                End If
                Exit Select
        End Select
    End Sub
    
    public void Execute(AddInPostDeploymentActionArgs args) 
    {
        string dataDirectory = @"Data\ExcelWorkbook.xlsx";
        string file = @"ExcelWorkbook.xlsx";
        string sourcePath = args.AddInPath;
        Uri deploymentManifestUri = args.ManifestLocation;
        string destPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        string sourceFile = System.IO.Path.Combine(sourcePath, dataDirectory);
        string destFile = System.IO.Path.Combine(destPath, file);
    
        switch (args.InstallationStatus)
        {
            case AddInInstallationStatus.InitialInstall:
            case AddInInstallationStatus.Update:
                File.Copy(sourceFile, destFile);
                ServerDocument.RemoveCustomization(destFile);
                ServerDocument.AddCustomization(destFile, deploymentManifestUri);
                break;
            case AddInInstallationStatus.Uninstall:
                if (File.Exists(destFile))
                {
                    File.Delete(destFile);
                }
                break;
        }
    }
    

Génération et publication de la solution

Utilisez l'Assistant Publication ou la Page projet pour générer et publier les solutions Office de votre ordinateur de développement.

Pour publier le projet Excel

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet FileCopyPDA, et cliquez sur Générer.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet ExcelWorkbook, et cliquez sur Générer.

  3. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet ExcelWorkbook, et cliquez sur Ajouter une référence.

  4. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet Projets.

  5. Cliquez sur FileCopyPDA, puis cliquez sur OK.

  6. Dans l'Explorateur de solutions, cliquez sur le projet ExcelWorkbook.

  7. Dans le menu Projet, cliquez sur Nouveau dossier.

  8. Tapez Données et appuyez sur la touche ENTRÉE.

  9. Dans l'Explorateur de solutions, cliquez sur le dossier Données.

  10. Dans le menu Projet, cliquez sur Ajouter un élément existant.

  11. Dans la boîte de dialogue Ajouter un élément existant, accédez au répertoire de sortie du projet ExcelWorkbook.

  12. Cliquez sur ExcelWorkbook.xlsx et sur Ajouter.

  13. Dans l'Explorateur de solutions, cliquez sur ExcelWorkbook.xlsx.

    Notes

    Si vous modifiez ce fichier ultérieurement, veillez à ajouter sa version la plus récente.

  14. Dans la fenêtre Propriétés, remplacez la propriété Action de génération par Contenu et la propriété Copier dans le répertoire de sortie par Copier si plus récent.

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

Modification du manifeste d'application

Utilisez l'éditeur XML dans Visual Studio pour modifier le manifeste d'application pour exécuter l'action de post-déploiement de copie de fichier. 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. 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.

Pour ajouter les dépendances d'installation au manifeste de l'application

  1. Ouvrez le répertoire c:\publish via l'Explorateur Windows.

  2. Ouvrez le dossier Fichiers d'application puis ouvrez le dossier ExcelWorkbook_1_0_0_0.

  3. Ouvrez le fichier ExcelWorkbook.dll.manifest dans un éditeur de texte.

  4. Ajoutez le code suivant après l'élément </vstav3:update>. Pour l'attribut de classe de l'élément <vstav3:entryPoint>, utilisez la syntaxe suivante: NomEspaceNoms.NomClasse. Dans cet exemple, les noms de classe et l'espace de noms sont les mêmes, afin que le nom du point d'entrée résultant soit FileCopyPDA.FileCopyPDA.

    <vstav3:postActions>
      <vstav3:postAction>
        <vstav3:entryPoint
          class="FileCopyPDA.FileCopyPDA">
          <assemblyIdentity
            name="FileCopyPDA"
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
        </vstav3:entryPoint>
        <vstav3:postActionData>
        </vstav3:postActionData>
      </vstav3:postAction>
    </vstav3:postActions>
    

Nouvelle signature des manifestes

La procédure suivante signe le manifeste d'application et met à jour le manifeste de déploiement. Cette opération garantit que des fichiers falsifiés ne sont pas installés sur les ordinateurs des utilisateurs finaux.

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

  1. Copiez le fichier de certificat ExcelWorkbook_TemporaryKey.pfx à partir du répertoire %USERPROFILE%\Documents\Visual Studio 2010\Projects\ExcelWorkbook\ExcelWorkbook de la solution dans le répertoire c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

  2. Ouvrez l'invite de commandes Visual Studio.

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

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

    mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx
    

    Le message « ExcelWorkbook.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 ExcelWorkbook.vsto -appmanifest "Application Files\Ex
    celWorkbook_1_0_0_0\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbook_1_0_0_0\ExcelWorkbook_TemporaryKey.pfx"
    

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

  7. Copiez le fichier ExcelWorkbook.vsto dans le répertoire c:\publish\Application Files\ExcelWorkbook_1_0_0_0.

Test de l'action de post-déploiement

La procédure suivante garantit que le manifeste mis à jour installe le classeur Excel et copie le classeur sur le Bureau de l'utilisateur final.

Pour tester l'action de post-déploiement

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

  2. Exécutez le programme Setup.exe, ou si les composants requis sont déjà installés sur l'ordinateur de test, double-cliquez sur le manifeste de déploiement ExcelWorkbook.vsto.

    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 ». Le classeur Excel est copié vers le Bureau de l'utilisateur final.

  4. Ouvrez le fichier ExcelWorkbook.xlsx à partir du Bureau.

Voir aussi

Tâches

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

Concepts

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.