Compartir a través de


Cómo: Asociar extensiones de código administrado a documentos (2007 System)

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos de Visual Studio Tools para Office y versiones de Microsoft Office especificados.

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Microsoft Office System 2007

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

Puede asociar una personalización de Visual Studio Tools para Office a un documento de Microsoft Office Word 2007 o un libro de Microsoft Office Excel 2007 ya existentes. El documento o libro puede estar en cualquier formato de archivo que Visual Studio Tools para Office admita. Para obtener más información, vea Arquitectura de las personalizaciones de nivel de documento.

Nota:

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

Para asociar una personalización de Visual Studio Tools para Office a un documento de Word o Excel, utilice el método AddCustomization de la clase ServerDocument. Como la clase ServerDocument 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 basadas en proyectos de Visual Studio Tools para Office (como una consola o aplicación de formularios Windows Forms).

Para asociar extensiones de código administrado a un documento

  1. Cree un nuevo proyecto que no inicie Word o Excel, por ejemplo, una aplicación de consola o un proyecto de formularios Windows Forms.

  2. En el nuevo proyecto, agregue una referencia a los ensamblados siguientes.

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll

    • Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll

  3. 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;
    
  4. 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);
    }
    

Vea también

Tareas

Cómo: Escribir código que utilice ambas versiones de la clase ServerDocument

Cómo: Quitar extensiones de código administrado de documentos (2007 System)

Cómo: Quitar extensiones de código administrado de documentos (2003 System)

Cómo: Asociar extensiones de código administrado a documentos (2003 System)

Conceptos

Administrar documentos en un servidor mediante la clase ServerDocument

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