Cómo: Adjuntar extensiones de código administrado a documentosHow to: Attach Managed Code Extensions to Documents

Puede adjuntar un ensamblado de personalización a un documento existente de Microsoft Office Word o un libro de Microsoft Office Excel.You can attach a customization assembly to an existing Microsoft Office Word document or Microsoft Office Excel workbook. El documento o libro puede estar en cualquier formato de archivo que sea compatible con los proyectos de Microsoft Office y herramientas de desarrollo de 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. Para obtener más información, consulte arquitectura de las personalizaciones de nivel de documento.For more information, see Architecture of Document-Level Customizations.

Aplicación: la información de este tema se aplica a los proyectos de nivel de documento de Excel y Word.Applies to: The information in this topic applies to document-level projects for Excel and Word. Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto de Office.For more information, see Features Available by Office Application and Project Type.

Para adjuntar una personalización a un documento de Word o Excel, use la AddCustomization método de la ServerDocument clase.To attach a customization to a Word or Excel document, use the AddCustomization method of the ServerDocument class. Dado que la ServerDocument clase está diseñada para ejecutarse en un equipo que no tiene instalado Microsoft Office, puede utilizar este método en soluciones que no están directamente relacionados con el desarrollo de Microsoft Office (como una aplicación de formularios Windows Forms o de consola).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).

Nota

Se producirá un error en la personalización cargar si el código espera controles que no tienen el documento especificado.The customization will fail to load if the code expects controls that the specified document does not have.

vínculo a vídeo para una demostración en vídeo relacionada, vea ¿cómo adjuntar I: o separar un ensamblado de VSTO desde un documento de Word?.link to video For a related video demonstration, see How Do I: Attach or Detach a VSTO Assembly from a Word Document?.

Para asociar extensiones de código administrado a un documentoTo attach managed code extensions to a document

  1. En un proyecto que no requiere Microsoft Office, como una aplicación de consola o un proyecto de formularios Windows Forms, agregue una referencia a la Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll y Microsoft.VisualStudio.Tools.Applications.Runtime.dll ensamblados.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. Agregue el siguiente importaciones o con instrucciones a la parte superior del archivo de código.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. Llame el método estático AddCustomization método.Call the static AddCustomization method.

    El siguiente ejemplo de código utiliza el AddCustomization sobrecarga.The following code example uses the AddCustomization overload. Esta sobrecarga toma la ruta de acceso completa del documento y un Uri que especifica la ubicación del manifiesto de implementación para la personalización que desea asociar al documento.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. En este ejemplo se supone que un documento de Word llamado WordDocument1.docx se encuentra en el escritorio, y que el manifiesto de implementación se encuentra en una carpeta que se denomina publicar que se encuentra también en el escritorio.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. Compile el proyecto y ejecutar la aplicación en el equipo donde desea adjuntar la personalización.Build the project and run the application on the computer where you want to attach the customization. El equipo debe tener Visual Studio 2010 Tools para Office Runtime instalado.The computer must have the Visual Studio 2010 Tools for Office Runtime installed.

Vea tambiénSee Also

Administrar documentos en un servidor mediante la clase ServerDocument Managing Documents on a Server by Using the ServerDocument Class
Cómo: quitar extensiones de código administrado de documentos How to: Remove Managed Code Extensions from Documents
Manifiestos de implementación y aplicación en soluciones de OfficeApplication and Deployment Manifests in Office Solutions