Comment : attacher des extensions de code managé à des documentsHow to: Attach Managed Code Extensions to Documents

Vous pouvez attacher un assembly de personnalisation à un document Microsoft Office Word existant ou d’un classeur Microsoft Office Excel.You can attach a customization assembly to an existing Microsoft Office Word document or Microsoft Office Excel workbook. Le document ou le classeur peut être dans n’importe quel format de fichier pris en charge par les projets Microsoft Office et les outils de développement dans Visual Studio.The document or workbook can be in any file format that is supported by the Microsoft Office projects and development tools in Visual Studio. Pour plus d’informations, consultez Architecture des personnalisations de niveau Document.For more information, see Architecture of Document-Level Customizations.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de niveau document pour Excel et Word.Applies to: The information in this topic applies to document-level projects for Excel and Word. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features Available by Office Application and Project Type.

Pour attacher une personnalisation à un document Word ou Excel, utilisez la AddCustomization méthode de la ServerDocument classe.To attach a customization to a Word or Excel document, use the AddCustomization method of the ServerDocument class. Étant donné que la ServerDocument classe est conçu pour être exécuté sur un ordinateur qui ne dispose pas de Microsoft Office est installé, vous pouvez utiliser cette méthode dans les solutions qui ne sont pas directement liées au développement de Microsoft Office (par exemple, une application console ou Windows Forms).Because the ServerDocument class is designed to be run on a computer that does not have Microsoft Office installed, you can use this method in solutions that are not directly related to Microsoft Office development (such as a console or Windows Forms application).

Note

La personnalisation échoue si le code attend des contrôles que le document spécifié n’a pas de charge.The customization will fail to load if the code expects controls that the specified document does not have.

lien vers la vidéo pour une démonstration vidéo connexe, consultez comment faire : n’attacher ou détacher un Assembly VSTO à partir d’un Document Word ?.link to video For a related video demonstration, see How Do I: Attach or Detach a VSTO Assembly from a Word Document?.

Pour attacher des extensions de code managé à un documentTo attach managed code extensions to a document

  1. Dans un projet qui ne requiert pas de Microsoft Office, telle qu’une application console ou un projet Windows Forms, ajoutez une référence au Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.dll assemblys.In a project that does not require Microsoft Office, such as a console application or Windows Forms project, add a reference to the Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll and Microsoft.VisualStudio.Tools.Applications.Runtime.dll assemblies.

  2. Ajoutez le code suivant importations ou à l’aide de instructions au début du fichier de code.Add the following Imports or using statements to the top of your code file.

    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
  3. Appelez la méthode statique AddCustomization (méthode).Call the static AddCustomization method.

    Le code suivant exemple utilise le AddCustomization de surcharge.The following code example uses the AddCustomization overload. Cette surcharge prend le chemin d’accès complet du document et une Uri qui spécifie l’emplacement du manifeste de déploiement pour la personnalisation que vous voulez attacher au document.This overload takes the full path of the document and a Uri that specifies the location of the deployment manifest for the customization you want to attach to the document. Cet exemple suppose qu’un document Word nommé Documentword1.docx sur le bureau, et que le manifeste de déploiement se trouve dans un dossier nommé publier qui se trouve également sur le bureau.This example assumes that a Word document named WordDocument1.docx is on the desktop, and that the deployment manifest is located in a folder that is named Publish that is also on the desktop.

    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);
    }
    
    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
    
  4. Générez le projet et exécuter l’application sur l’ordinateur où vous souhaitez attacher la personnalisation.Build the project and run the application on the computer where you want to attach the customization. L’ordinateur doit disposer de Visual Studio 2010 Tools pour Office Runtime.The computer must have the Visual Studio 2010 Tools for Office Runtime installed.

Voir aussiSee Also

Gestion de Documents sur un serveur à l’aide de la classe ServerDocument Managing Documents on a Server by Using the ServerDocument Class
Comment : supprimer des Extensions de Code managé de Documents How to: Remove Managed Code Extensions from Documents
Manifestes d’application et de déploiement dans les solutions OfficeApplication and Deployment Manifests in Office Solutions