Share via


Cómo: Adjuntar extensiones de código administrado a documentos

Puede adjuntar un ensamblado de personalización a un documento de Microsoft Office Word o un libro de Microsoft Office Excel existentes. El documento o libro puede tener cualquier formato de archivo que sea compatible con los proyectos de Microsoft Office y las herramientas de desarrollo en Visual Studio 2010. Para obtener más información, vea Arquitectura de las personalizaciones de nivel de documento.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para las siguientes aplicaciones: Excel 2007 y Excel 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Para adjuntar una personalización a un documento de Word o Excel, use el método AddCustomization de la clase ServerDocument. Dado que la clase ServerDocument está diseñada para ejecutarse en un equipo sin Microsoft Office, se puede utilizar este método en soluciones que no están directamente relacionadas con el desarrollo de Microsoft Office (por ejemplo, una aplicación de consola o de Windows Forms).

Nota

La personalización no se cargará si el código espera controles que el documento especificado no tiene.

vínculo a vídeo Para obtener una demostración en vídeo relacionada con este tema, vea How Do I: Attach or Detach a VSTO Assembly from a Word Document?.

Para asociar extensiones de código administrado a un documento

  1. En un proyecto que no requiere Microsoft Office, como una aplicación de consola o un proyecto de Windows Forms, agregue una referencia a uno de los siguientes ensamblados:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll y Microsoft.VisualStudio.Tools.Applications.Runtime.dll (si el destino del proyecto es .NET Framework 4).

      O bien

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll y Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si el destino del proyecto es .NET Framework 3.5).

  2. Agregue las siguientes instrucciones Imports o using al principio del archivo de código.

    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. Llame al método estático AddCustomization.

    En el ejemplo de código siguiente se utiliza la sobrecarga AddCustomization. Esta sobrecarga toma la ruta de acceso completa del documento y Uri que especifica la ubicación del manifiesto de implementación para la personalización que desea asociar al documento. En este ejemplo se presupone que un documento de Word denominado WordDocument1.docx está en el escritorio y que el manifiesto de implementación se encuentra en una carpeta que se denomina Publicar que también está en el escritorio.

    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);
    }
    
  4. Compile el proyecto y ejecute la aplicación en el equipo donde desea adjuntar la personalización. El equipo debe tener instalado Visual Studio 2010 Tools para Office Runtime.

Vea también

Tareas

Cómo: Quitar extensiones de código administrado de documentos

Conceptos

Administrar documentos en un servidor mediante la clase ServerDocument

Manifiestos de implementación y aplicación en soluciones de Office