Como: remover as extensões de código gerenciado de documentosHow to: Remove managed code extensions from documents

Você poderá remover programaticamente o assembly de personalização de um documento ou pasta de trabalho que faz parte de uma personalização no nível de documento para o Microsoft Office Word ou Microsoft Office Excel.You can programmatically remove the customization assembly from a document or workbook that is part of a document-level customization for Microsoft Office Word or Microsoft Office Excel. Os usuários podem, em seguida, abra os documentos e exibir o conteúdo, mas não aparecerá nenhuma interface do usuário personalizada (UI) adicionar aos documentos e seu código não será executado.Users can then open the documents and view the contents, but any custom user interface (UI) you add to the documents will not appear, and your code will not run.

Aplicável a: as informações neste tópico são aplicáveis aos projetos no nível de documento para Excel e Word.Applies to: The information in this topic applies to document-level projects for Excel and Word. Para obter mais informações, consulte recursos disponíveis por tipo de projeto e aplicativo do Office.For more information, see Features available by Office application and project type.

Você pode remover o assembly de personalização, usando uma da RemoveCustomization métodos fornecidos pelo Visual Studio Tools para Office RuntimeVisual Studio Tools for Office runtime.You can remove the customization assembly by using one of the RemoveCustomization methods provided by the Visual Studio Tools para Office RuntimeVisual Studio Tools for Office runtime. Qual método você usa depende se você deseja remover a personalização em tempo de execução (ou seja, executando o código na personalização enquanto a palavra documento ou pasta de trabalho do Excel é aberta), ou se você quiser remover a personalização de um documento fechado ou um documento que i s em um servidor que não tenha o Microsoft Office instalado.Which method you use depends on whether you want to remove the customization at run time (that is, by running code in the customization while the Word document or Excel workbook is open), or if you want to remove the customization from a closed document or a document that is on a server that does not have Microsoft Office installed.

link para vídeo para uma demonstração em vídeo relacionada, consulte como eu faço para: fazer anexar ou desanexar um Assembly do VSTO a partir de um documento do Word?.link to video For a related video demonstration, see How Do I: Attach or Detach a VSTO Assembly from a Word Document?.

Para remover o assembly de personalização em tempo de execuçãoTo remove the customization assembly at runtime

  1. No seu código de personalização, chame o RemoveCustomization método (para o Word) ou o RemoveCustomization método (para Excel).In your customization code, call the RemoveCustomization method (for Word) or the RemoveCustomization method (for Excel). Esse método deve ser chamado somente depois que a personalização não for mais necessário.This method should be called only after the customization is no longer needed.

    Em que você chamar esse método em seu código depende de como sua personalização é usada.Where you call this method in your code depends on how your customization is used. Por exemplo, se os clientes usam os recursos da sua personalização até que eles estejam prontos para enviar um documento para outros clientes que precisam apenas o documento em si (não a personalização), você pode fornecer algumas interfaces do usuário que chama RemoveCustomization quando o cliente clica nele.For example, if customers use your customization's features until they are ready to send the document to other clients that only need to the document itself (not the customization), you can provide some UI that calls RemoveCustomization when the customer clicks it. Como alternativa, se sua personalização preenche o documento com os dados quando ele é aberto pela primeira vez, mas a personalização não fornece outros recursos que são acessados diretamente por clientes, em seguida, você pode chamar RemoveCustomization assim que a personalização conclui a inicialização do documento.Alternatively, if your customization populates the document with data when it is first opened, but the customization doesn't provide any other features that are accessed directly by customers, then you can call RemoveCustomization as soon as your customization finishes initializing the document.

Para remover o assembly de personalização de um documento fechado ou um documento em um servidorTo remove the customization assembly from a closed document or a document on a server

  1. Em um projeto que não requer o Microsoft Office, como um aplicativo de console ou um projeto do Windows Forms, adicione uma referência para o ServerDocument assembly.In a project that does not require Microsoft Office, such as a console application or Windows Forms project, add a reference to the Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll assembly.

  2. Adicione o seguinte importações ou usando instrução na parte superior do seu arquivo de código.Add the following Imports or using statement to the top of your code file.

    using Microsoft.VisualStudio.Tools.Applications;
    
    Imports Microsoft.VisualStudio.Tools.Applications
    
  3. Chamar estático RemoveCustomization método da ServerDocument de classe e especifique o caminho do documento de solução para o parâmetro.Call the static RemoveCustomization method of the ServerDocument class, and specify the solution document path for the parameter.

    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.The following code example assumes that you are removing the customization from a document named WordDocument1.docx that is on the desktop.

    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);
    }
    
    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
    
  4. Compile o projeto e executar o aplicativo no computador em que você deseja remover a personalização.Build the project and run the application on the computer where you want to remove the customization. O computador deve ter o Visual Studio 2010 Tools para Office runtime instalado.The computer must have the Visual Studio 2010 Tools for Office runtime installed.

Consulte tambémSee also

Gerenciar documentos em um servidor usando a classe ServerDocument Manage documents on a server by using the ServerDocument class
Como: anexar Managed extensions para documentos de códigoHow to: Attach Managed code extensions to documents