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 2013 Preview et Microsoft Office 2010. Pour en savoir plus, 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 pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués 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 2012 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez [Configuration d'un ordinateur pour développer des solutions Office](https://msdn.microsoft.com/fr-fr/library/bb398242\(v=vs.110\)).
Aperçu d'Excel 2013 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 2012\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
Dans le menu Fichier, pointez sur Ajouter, puis cliquez sur Nouveau projet.
Dans la boîte de dialogue Ajouter un nouveau projet, dans le volet Modèles installés, cliquez sur Fenêtres.
Dans le volet Modèles, cliquez sur Bibliothèque de classes.
Dans le champ Nom, tapez FileCopyPDA, puis cliquez sur OK.
Dans Explorateur de solutions, cliquez sur FileCopyPDA.
Dans le menu Projet , cliquez sur AjouterRéférence.
La boîte de dialogue Ajouter une référence s'affiche.
Sous l'onglet .NET , ajoutez des références à Microsoft.VisualStudio.Tools.Applications.Runtime et Microsoft.VisualStudio.Tools.Applications.ServerDocument.
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;
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
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.
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
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet FileCopyPDA, et cliquez sur Générer.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet ExcelWorkbook, et cliquez sur Générer.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet ExcelWorkbook, et cliquez sur Ajouter une référence.
Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet Projets.
Cliquez sur FileCopyPDA, puis cliquez sur OK.
Dans l'Explorateur de solutions, cliquez sur le projet ExcelWorkbook.
Dans le menu Projet, cliquez sur Nouveau dossier.
Tapez Données et appuyez sur la touche ENTRÉE.
Dans l'Explorateur de solutions, cliquez sur le dossier Données.
Dans le menu Projet, cliquez sur Ajouter un élément existant.
Dans la boîte de dialogue Ajouter un élément existant, accédez au répertoire de sortie du projet ExcelWorkbook.
Cliquez sur ExcelWorkbook.xlsx et sur Ajouter.
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.
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.
Publiez le projet ExcelWorkbook dans le dossier c:\publish. Pour plus d’informations, consultez Comment : publier 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
Ouvrez le dossier de c:\publish via l'Explorateur de fichiers.
Ouvrez le dossier Fichiers d'application puis ouvrez le dossier ExcelWorkbook_1_0_0_0.
Ouvrez le fichier ExcelWorkbook.dll.manifest dans un éditeur de texte.
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
Copiez le fichier de certificat ExcelWorkbook_TemporaryKey.pfx à partir du répertoire %USERPROFILE%\Documents\Visual Studio 2012\Projects\ExcelWorkbook\ExcelWorkbook de la solution dans le répertoire c:\publish\Application Files\ExcelWorkbook_1_0_0_0.
Ouvrez l'invite de commandes Visual Studio.
Accédez au répertoire c:\publish\Application Files\ExcelWorkbook_1_0_0_0.
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.
Accédez au répertoire c:\publish.
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.
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
Copiez le répertoire c:\publish vers un ordinateur de test.
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.
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.
Ouvrez le fichier ExcelWorkbook.xlsx à partir du Bureau.
Voir aussi
Tâches
Comment : signer de nouveau des manifestes d'application et de déploiement