Como: remover as extensões de código gerenciado de documentos

Você pode programaticamente remova o conjunto de personalização de um documento ou uma pasta de trabalho que seja parte de uma personalização da nível do Microsoft Office Word e Microsoft Office Excel.Os usuários podem abrir os documentos e exibir o conteúdo, mas nenhuma interface de usuário (UI) personalizada que você adiciona aos documentos não aparecerá, e seu código não será executado.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2013 e Excel 2010; Word 2013 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Você pode remover o assembly de personalização usando um dos métodos de RemoveCustomization fornecidos por Visual Studio Tools for Office Runtime.Método que você usa depende se você deseja remover em tempo de execução personalização (isto é, executando o código de personalização quando o documento ou pasta de trabalho do Excel do word é aberta), ou se você deseja remover a personalização de um documento fechado ou um documento que está em um servidor que não tenha Microsoft Office instalado.

link para vídeo Para uma demonstração de vídeo relacionada, consulte Como: eu faço Anexar ou desanexar um conjunto de VSTO de um documento do word?.

Para remover em tempo de execução do assembly de personalização

  • Em o código de personalização, chame o método de Document.RemoveCustomization (para word) ou o método de Workbook.RemoveCustomization para o excel ().Esse método deve ser chamado somente após a personalização não for mais necessária.

    Onde você chamar esse método no seu código depende de como sua personalização é usada.Por exemplo, se os clientes usam os recursos de sua personalização até que estão prontos para enviar o documento para outros clientes que precisam somente o documento próprio (não a personalização), você pode fornecer algum interface do usuário que chama RemoveCustomization quando o cliente o clique.Como alternativa, se sua personalização preenche o documento com dados quando estiver aberta pela primeira vez, mas a personalização não fornece quaisquer outros recursos que são acessados diretamente por clientes, então você pode chamar RemoveCustomization portanto sua personalização concluir inicializar o documento.

Para remover o assembly de personalização de um documento fechado ou de um documento em um servidor

  1. Em um projeto que não requer Microsoft Office, como um aplicativo de console ou um projeto formulários do windows, adicione uma referência ao conjunto de Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll.

  2. Adicione a seguinte Imports ou instrução de using à parte superior do arquivo de código.

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  3. Chame o método estático de RemoveCustomization da classe de ServerDocument , e especifique o caminho de documento de solução para o parâmetro.

    O exemplo de código a seguir pressupõe que você está removendo a personalização de um documento chamado WordDocument1.docx que está na área de trabalho.

    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 o projeto e executar o aplicativo no computador onde você deseja remover a personalização.O computador deve ter as ferramentas do Visual Studio 2010 para o tempo de execução do Office instalado.

Consulte também

Tarefas

Como: anexar extensões de código gerenciado para documentos

Conceitos

Gerenciamento de documentos em um servidor, usando a classe ServerDocument