Partilhar via


Remover extensões de código gerenciado de documentos

Você pode remover programaticamente o assembly de personalização de um documento ou pasta de trabalho que faz parte de uma personalização em nível de documento para o Microsoft Office Word ou Microsoft Office Excel. Os usuários podem abrir os documentos e exibir o conteúdo, mas qualquer interface do usuário personalizada que você adicionar aos documentos não será exibida e seu código não será executado.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento para Excel e Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Você pode remover o assembly de personalização usando um dos RemoveCustomization métodos fornecidos pelo Visual Studio Tools for Office runtime . O método usado depende se você deseja remover a personalização em tempo de execução (ou seja, executando código na personalização enquanto o documento do Word ou a pasta de trabalho do Excel está aberta) ou se deseja remover a personalização de um documento fechado ou de um documento que esteja em um servidor que não tenha o Microsoft Office instalado.

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

  1. No código de personalização, chame o método (para Word) ou o RemoveCustomization RemoveCustomization método (para Excel). Esse método deve ser chamado somente depois que a personalização não for mais necessária.

    Onde você chama esse método em seu código depende de como sua personalização é usada. Por exemplo, se os clientes usarem os recursos de personalização até que estejam prontos para enviar o documento para outros clientes que só precisam do documento em si (não da personalização), você poderá fornecer alguma interface do usuário que chame RemoveCustomization quando o cliente clicar nele. Como alternativa, se a personalização preencher o documento com dados quando ele for aberto pela primeira vez, mas a personalização não fornecer outros recursos acessados diretamente pelos clientes, você poderá chamar RemoveCustomization assim que a personalização terminar de 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 o Microsoft Office, como um aplicativo de console ou projeto do Windows Forms, adicione uma referência ao assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll

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

    using Microsoft.VisualStudio.Tools.Applications;
    
  3. Chame o ServerDocument método estático RemoveCustomization da classe e especifique o caminho do 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.

    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. Crie o projeto e execute o aplicativo no computador onde você deseja remover a personalização. O computador deve ter o Visual Studio 2010 Tools for Office runtime instalado.