Compartir a través de


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

Se puede quitar mediante programación el ensamblado de personalización de un documento o libro que forma parte de una personalización de nivel de documento para Microsoft Office Word o Microsoft Office Excel. Los usuarios pueden abrir los documentos y ver el contenido, pero cualquier interfaz de usuario personalizada que agregue no aparecerá y el código no se ejecutará.

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 quitar el ensamblado de personalización, se puede usar uno de los métodos RemoveCustomization proporcionados por el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. El método que use depende de si desea quitar la personalización en tiempo de ejecución (es decir, ejecutando el código de la personalización mientras está abierto el documento de Word o el libro de Excel) o de si desea quitarla de un documento cerrado o un documento que está en un servidor que no tiene instalado Microsoft Office.

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 quitar el ensamblado de personalización en tiempo de ejecución

  • En el código de personalización, llame al método Document.RemoveCustomization (para Word) o al método Workbook.RemoveCustomization (para Excel). Este método debe invocarse únicamente cuando ya no se necesita la personalización.

    La ubicación desde la que se invoca este método en el código depende de cómo se utilice la personalización. Por ejemplo, si los clientes utilizan las características de la personalización hasta que estén preparados para enviar el documento a otros clientes que solo necesitan el documento propiamente dicho (no la personalización), se puede proporcionar alguna interfaz de usuario que llame a RemoveCustomization cuando el cliente hace clic en ella. Asimismo, si la personalización rellena el documento con datos cuando se abre por primera vez, pero no proporciona ninguna otra característica a la que los clientes obtengan acceso directamente, se podrá llamar a RemoveCustomization en cuanto la personalización termine de inicializar el documento.

Para quitar el ensamblado de personalización desde un documento cerrado o desde un documento de un servidor

  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 (si el destino del proyecto es .NET Framework 4).

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

  2. Agregue la siguiente instrucción Imports o using al principio del archivo de código.

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  3. Llame al método estático RemoveCustomization de la clase ServerDocument y especifique la ruta de acceso del documento de la solución para el parámetro.

    En el ejemplo de código siguiente se supone que está quitando la personalización de un documento denominado WordDocument1.docx que 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)
        If runtimeVersion = 3 Then
            ServerDocument.RemoveCustomization(documentPath)
            System.Windows.Forms.MessageBox.Show("The customization has been removed.")
        End If
    Catch ex As FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As IOException
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.")
    Catch ex As InvalidOperationException
        System.Windows.Forms.MessageBox.Show("The customization could not be removed." & _
            vbLf & ex.Message)
    End Try
    
    string documentPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx";
    int runtimeVersion = 0;
    
    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
    
        if (runtimeVersion == 3)
        {
            ServerDocument.RemoveCustomization(documentPath);
            System.Windows.Forms.MessageBox.Show("The customization has been removed.");
        }
    }
    catch (FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (IOException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.");
    }
    catch (InvalidOperationException ex)
    {
        System.Windows.Forms.MessageBox.Show("The customization could not be removed.\n" +
            ex.Message);
    }
    
  4. Compile el proyecto y ejecute la aplicación en el equipo donde desea quitar la personalización. El equipo debe tener instalado Visual Studio 2010 Tools para Office Runtime.

Vea también

Tareas

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

Conceptos

Administrar documentos en un servidor mediante la clase ServerDocument