Compartir a través de


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

Actualización: noviembre 2007

Se aplica a

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

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Microsoft Office System 2007

  • Microsoft Office 2003

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

Puede crear un archivo de código que use la clase ServerDocument para administrar las personalizaciones para Microsoft Office 2003 y Microsoft Office System 2007. Esto facilita la creación de un ensamblado que contenga el código reutilizable cuando sea necesario administrar las personalizaciones para varias versiones de Microsoft Office.

Para obtener información sobre las diferencias entre las dos versiones de la clase ServerDocument, vea Administrar documentos en un servidor mediante la clase ServerDocument.

Para escribir código que utilice ambas versiones de la clase ServerDocument

  1. Agregue referencias a los siguientes ensamblados:

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

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

  2. Agregue las siguientes instrucciones using (para Visual C#) o Imports (para Visual Basic) a la parte superior del archivo de código. Estas instrucciones definen los alias de los espacios de nombres de cada una de las versiones de la clase ServerDocument.

    Imports v3Runtime = Microsoft.VisualStudio.Tools.Applications
    Imports SERuntime = Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using v3Runtime = Microsoft.VisualStudio.Tools.Applications;
    using SERuntime = Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. Use el método GetCustomizationVersion para determinar qué versión del motor en tiempo de ejecución de Visual Studio Tools para Office se usó para crear la personalización. A continuación, use la clase ServerDocument de esa versión del motor en tiempo de ejecución para trabajar con la personalización.

    En el ejemplo de código siguiente se examina la personalización que está asociada a un documento especificado. Si el documento se personalizó mediante Microsoft Visual Studio Tools para Microsoft Office System (versión 3.0 Runtime) (es decir, mediante un proyecto para Word 2007), el ejemplo muestra la dirección URL del manifiesto de implementación. Si el documento se personalizó mediante Visual Studio 2005 Tools para Office Second Edition runtime (es decir, mediante un proyecto para Word 2003), el ejemplo muestra el contenido del manifiesto de aplicación incrustado.

    Private Sub DisplayCustomizationInformation(ByVal documentPath As String)
        Dim runtimeVersion As Integer = 0
        Dim serverDocumentv3 As v3Runtime.ServerDocument = Nothing
        Dim serverDocumentSE As SERuntime.ServerDocument = Nothing
    
        Try
            runtimeVersion = v3Runtime.ServerDocument.GetCustomizationVersion(documentPath)
    
            ' Access a member that is specific to each version of the runtime.
            If runtimeVersion = 3 Then
                serverDocumentv3 = New v3Runtime.ServerDocument(documentPath)
                MessageBox.Show("The URL of the deployment manifest is: " & vbLf & _
                    serverDocumentv3.DeploymentManifestUrl.ToString())
            ElseIf runtimeVersion = 2 Then
                serverDocumentSE = New SERuntime.ServerDocument(documentPath)
                MessageBox.Show("The embedded application manifest has the following contents: " & vbLf _
                    & serverDocumentSE.AppManifest.ToXml())
            End If
    
        Catch ex As System.IO.FileNotFoundException
            System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
        Finally
            If Not (serverDocumentv3 Is Nothing) Then
                serverDocumentv3.Close()
            End If
            If Not (serverDocumentSE Is Nothing) Then
                serverDocumentSE.Close()
            End If
        End Try
    End Sub
    
    private void DisplayCustomizationInformation(string documentPath)
    {
        int runtimeVersion = 0;
        v3Runtime.ServerDocument serverDocumentv3 = null;
        SERuntime.ServerDocument serverDocumentSE = null;
    
        try
        {
            runtimeVersion = v3Runtime.ServerDocument.GetCustomizationVersion(documentPath);
    
            // Access a member that is specific to each version of the runtime.
            if (runtimeVersion == 3)
            {
                serverDocumentv3 = new v3Runtime.ServerDocument(documentPath);
                MessageBox.Show("The URL of the deployment manifest is: \n" +
                    serverDocumentv3.DeploymentManifestUrl.ToString());
            }
            else if (runtimeVersion == 2)
            {
                serverDocumentSE = new SERuntime.ServerDocument(documentPath);
                MessageBox.Show("The embedded application manifest has the following contents: \n" +
                    serverDocumentSE.AppManifest.ToXml());
            }
        }
        catch (System.IO.FileNotFoundException)
        {
            System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
        }
        finally
        {
            if (serverDocumentv3 != null)
                serverDocumentv3.Close();
            if (serverDocumentSE != null)
                serverDocumentSE.Close();
        }
    }
    

Vea también

Conceptos

Administrar documentos en un servidor mediante la clase ServerDocument

Referencia

Microsoft.VisualStudio.Tools.Applications.ServerDocument

Microsoft.VisualStudio.Tools.Applications.Runtime.ServerDocument