ServerDocument.AddCustomization (Método) (String, Uri)

Asocia una personalización al documento especificado utilizando el nombre de ensamblado y el manifiesto de implementación indicados.

Espacio de nombres:  Microsoft.VisualStudio.Tools.Applications
Ensamblado:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (en Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Sintaxis

'Declaración
Public Shared Sub AddCustomization ( _
    documentPath As String, _
    deploymentManifestUrl As Uri _
)
public static void AddCustomization(
    string documentPath,
    Uri deploymentManifestUrl
)

Parámetros

  • documentPath
    Tipo: System.String
    Ruta de acceso completa del documento al que desea asociar una personalización.
  • deploymentManifestUrl
    Tipo: System.Uri
    Dirección URL del manifiesto de implementación para la solución.

Excepciones

Excepción Condición
ArgumentNullException

documentPath o deploymentManifestUrl es nullreferencia null (Nothing en Visual Basic) o está vacío.

ArgumentException

deploymentManifestUrl no especifica una dirección URL absoluta.

FileNotFoundException

documentPath o deploymentManifestUrl hace referencia a un archivo que no existe.

DocumentAlreadyCustomizedException

El documento especificado por documentPath ya tiene una personalización.

InvalidManifestException

El manifiesto de implementación especificado por deploymentManifestUrl no es un manifiesto de implementación válido.

DocumentNotCustomizedException

El documento especificado por documentPath está dañado o tiene permisos restringidos.

UnknownCustomizationFileException

El documento especificado por documentPath tiene una extensión de nombre de archivo que no es compatible con Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

Comentarios

Para asociar la personalización especificada al documento, el método AddCustomization agrega las propiedades de documento personalizado _AssemblyName y _AssemblyLocation al documento. Estas propiedades identifican que el documento tiene una personalización y especifica la ubicación del manifiesto de implementación. Después de llamar a este método correctamente, la siguiente vez que el usuario abra el documento especificado, el motor en tiempo de ejecución intentará instalar la solución de Office. Para obtener más información sobre las propiedades de documentos personalizados, vea Información general sobre propiedades personalizadas del documento.

Si el documento especificado no contiene ninguno de los controles que la personalización esperaba que tuviera, el método AddCustomization se ejecuta correctamente, pero el ensamblado no podrá cargarse cuando el usuario abra el documento.

El parámetro fileType debe especificar un documento que tiene una extensión de nombre de archivo que se admite para las personalizaciones de nivel de documento para Microsoft Office Word y Microsoft Office Excel. No puede adjuntar una personalización a un documento que está guardado en el documento XML de Word (* xml) o en formatos de archivo del documento XML de Word 2003 (* xml). Para obtener más información sobre los tipos de archivos compatibles, vea Arquitectura de las personalizaciones de nivel de documento.

Ejemplos

En el ejemplo de código siguiente se utiliza el método AddCustomization para adjuntar una personalización al documento especificado.

Este ejemplo necesita:

  • Un proyecto de aplicación de consola o algún otro proyecto que no es de Office.

  • Referencias a 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 and Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si el proyecto está dirigido a .NET Framework 3.5).

  • Instrucciones Imports (para Visual Basic) o using (para C#) para los espacios de nombres Microsoft.VisualStudio.Tools.Applications y Microsoft.VisualStudio.Tools.Applications.Runtime en la parte superior de su archivo de código.

Private Sub AddCustomizationUsingDocumentPath(ByVal documentPath As String, _
    ByVal deployManifestPath As String)
    Dim runtimeVersion As Integer = 0

    Try
        ' Make sure that this document does not yet have any Visual Studio Tools 
        ' for Office customizations.
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 0 Then
            Dim deploymentManifestUri As New Uri(deployManifestPath)
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri)
            MessageBox.Show("The document was successfully customized.")
        Else
            System.Windows.Forms.MessageBox.Show("The document is already customized.")
        End If

    Catch ex As System.IO.FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As UnknownCustomizationFileException
        System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
            "extension that is not supported by Visual Studio Tools for Office.")
    Catch ex As DocumentNotCustomizedException
        System.Windows.Forms.MessageBox.Show("The document could not be customized." & _
        vbLf & ex.Message)
    End Try
End Sub
private void AddCustomizationUsingDocumentPath(string documentPath, string deployManifestPath)
{
    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)
        {
            Uri deploymentManifestUri = new Uri(deployManifestPath);
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri);
            MessageBox.Show("The document was successfully customized.");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show("The document is already customized.");
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (UnknownCustomizationFileException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document has a file " +
            "extension that is not supported by Visual Studio Tools for Office.");
    }
    catch (DocumentNotCustomizedException ex)
    {
        System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" +
            ex.Message);
    }
}

Seguridad de .NET Framework

Vea también

Referencia

ServerDocument Clase

AddCustomization (Sobrecarga)

Microsoft.VisualStudio.Tools.Applications (Espacio de nombres)