How to: Remove managed code extensions from documents (Entfernen von Erweiterungen für verwalteten Code aus Dokumenten)

Sie können die Anpassungs-Assembly programmgesteuert aus einem Dokument oder einer Arbeitsmappe entfernen, das Teil einer Anpassung auf Dokumentebene für Microsoft Office Word oder Microsoft Office Excel. Benutzer können dann die Dokumente öffnen und den Inhalt anzeigen. Benutzeroberflächen, die Sie den Dokumenten hinzufügen, werden jedoch nicht angezeigt, und Ihr Code wird nicht ausgeführt.

Gilt für: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Excel und Word.- Weitere Informationen finden Sie unter verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Sie können die Anpassungs-Assembly mithilfe einer der von RemoveCustomization bereitgestellten Methoden Visual Studio-Tools für Office-Laufzeit entfernen. Welche Methode Sie verwenden, hängt davon ab, ob Sie die Anpassung zur Laufzeit entfernen möchten (d. h. indem Sie Code in der Anpassung ausführen, während das Word-Dokument oder die Excel-Arbeitsmappe geöffnet ist), oder ob Sie die Anpassung aus einem geschlossenen Dokument oder einem Dokument entfernen möchten, das sich auf einem Server befindet, auf dem Microsoft Office nicht installiert ist.

So entfernen Sie die Anpassungs-Assembly zur Laufzeit

  1. Rufen Sie in Ihrem Anpassungscode die RemoveCustomization -Methode (für Word) oder die RemoveCustomization -Methode (für Excel. Diese Methode sollte erst aufgerufen werden, wenn die Anpassung nicht mehr benötigt wird.

    Wo Sie diese Methode im Code aufrufen, hängt davon ab, wie Ihre Anpassung verwendet wird. Wenn Kunden beispielsweise die Features Ihrer Anpassung verwenden, bis sie bereit sind, das Dokument an andere Clients zu senden, die nur das Dokument selbst benötigen (nicht die Anpassung), können Sie eine Benutzeroberfläche bereitstellen, die aufruft, wenn der Kunde darauf RemoveCustomization klickt. Wenn ihre Anpassung das Dokument beim ersten Öffnen mit Daten auffüllt, die Anpassung jedoch keine anderen Features bietet, auf die Kunden direkt zugreifen, können Sie RemoveCustomization aufrufen, sobald die Anpassung die Initialisierung des Dokuments abgeschlossen hat.

So entfernen Sie die Anpassungs-Assembly aus einem geschlossenen Dokument oder einem Dokument auf einem Server

  1. Fügen Sie in einem Projekt, das keine Microsoft Office erfordert, z. B. eine Konsolenanwendung oder ein Windows Forms-Projekt, einen Verweis auf dieMicrosoft.VisualStudio.Tools.Applications.ServerDocument.dll hinzu.

  2. Fügen Sie am Anfang der Codedatei die folgende Imports- oder using-Anweisung hinzu.

    using Microsoft.VisualStudio.Tools.Applications;
    
    Imports Microsoft.VisualStudio.Tools.Applications
    
  3. Rufen Sie die statische RemoveCustomization Methode der -Klasse ServerDocument auf, und geben Sie den Projektmappendokumentpfad für den Parameter an.

    Im folgenden Codebeispiel wird davon ausgegangen, dass Sie die Anpassung aus einem Dokument mit dem Namen WordDocument1.docx, das sich auf dem Desktop befindet.

    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. Erstellen Sie das Projekt, und führen Sie die Anwendung auf dem Computer aus, auf dem Sie die Anpassung entfernen möchten. Auf dem Computer müssen die Visual Studio 2010-Tools für Office Runtime installiert sein.

Siehe auch