Comment : attacher des extensions de code managé à des documents
Vous pouvez attacher un assembly de personnalisation à un document Microsoft Office Word ou un classeur Microsoft Office Excel existant. Tous les formats de fichier pris en charge par les projets Microsoft Office et les outils de développement dans Visual Studio 2010 peuvent être utilisés pour le document ou le classeur. Pour plus d'informations, consultez Architecture des personnalisations au niveau du document.
S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document pour les applications suivantes : Excel 2007, Excel 2010, Word 2007 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.
Pour attacher une personnalisation à un document Word ou Excel, utilisez la méthode AddCustomization de la classe ServerDocument. Étant donné que la classe ServerDocument est conçue pour s'exécuter sur un ordinateur sur lequel Microsoft Office n'est pas installé, il est possible d'utiliser cette méthode dans les solutions qui ne sont pas directement liées au développement Microsoft Office (telles qu'une console ou une application Windows Forms).
Notes
Le chargement de la personnalisation échouera si le code attend des contrôles que le document spécifié ne possède pas.
Pour une démonstration vidéo connexe, consultez How Do I: Attach or Detach a VSTO Assembly from a Word Document? (page éventuellement en anglais).
Pour joindre des extensions de code managé à un document
Dans un projet qui ne requiert pas Microsoft Office, tel qu'une application console ou un projet Windows Forms, ajoutez une référence à l'un des assemblys suivants :
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.dll (si le projet cible .NET Framework 4).
ou
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si le projet cible le .NET Framework 3.5).
Ajoutez l'instruction Imports ou using suivante en haut de votre fichier de code.
Imports Microsoft.VisualStudio.Tools.Applications Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications; using Microsoft.VisualStudio.Tools.Applications.Runtime;
Appelez la méthode AddCustomization statique.
L'exemple de code suivant utilise la surcharge AddCustomization. Cette surcharge utilise le chemin d'accès complet du document et un Uri qui spécifie l'emplacement du manifeste de déploiement pour la personnalisation que vous voulez joindre au document. Cet exemple part du principe qu'un document Word appelé WordDocument1.docx est affiché sur le Bureau et que le manifeste de déploiement se trouve dans le dossier Publish, également sur le Bureau.
Dim documentPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) + "\WordDocument1.docx" Dim runtimeVersion As Integer = 0 Try runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath) ' Make sure that this document does not yet have any Visual Studio Tools ' for Office customizations. If runtimeVersion = 0 Then Dim deployManifestPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) & "\Publish\WordDocument1.vsto" Dim deploymentManifestUri As New Uri(deployManifestPath) ServerDocument.AddCustomization(documentPath, deploymentManifestUri) System.Windows.Forms.MessageBox.Show("The document was successfully customized.") Else System.Windows.Forms.MessageBox.Show("The document is already customized.") End If Catch ex As FileNotFoundException System.Windows.Forms.MessageBox.Show("The specified document does not exist.") Catch ex As DocumentNotCustomizedException System.Windows.Forms.MessageBox.Show("The document could not be customized." & _ vbLf & ex.Message) End Try
string documentPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx"; int runtimeVersion = 0; try { runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath); // Make sure that this document does not yet have any Visual Studio Tools // for Office customizations. if (runtimeVersion == 0) { string deployManifestPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\Publish\WordDocument1.vsto"; Uri deploymentManifestUri = new Uri(deployManifestPath); ServerDocument.AddCustomization(documentPath, deploymentManifestUri); System.Windows.Forms.MessageBox.Show("The document was successfully customized."); } else { System.Windows.Forms.MessageBox.Show("The document is already customized."); } } catch (FileNotFoundException) { System.Windows.Forms.MessageBox.Show("The specified document does not exist."); } catch (DocumentNotCustomizedException ex) { System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" + ex.Message); }
Générez le projet et exécutez l'application sur l'ordinateur où vous souhaitez attacher la personnalisation. Visual Studio 2010 Tools pour Office Runtime doit être installé sur l'ordinateur.
Voir aussi
Tâches
Comment : supprimer des extensions de code managé de documents
Concepts
Gestion de documents sur un serveur à l'aide de la classe ServerDocument
Manifestes d'application et de déploiement dans les solutions Office