Entfernen verwalteter Codeerweiterungen aus Dokumenten
Sie können die Anpassungsassembly programmgesteuert aus einem Dokument oder einer Arbeitsmappe entfernen, das Teil einer Anpassung auf Dokumentebene für Microsoft Office Word oder Microsoft Office Excel ist. Benutzer können dann die Dokumente öffnen und den Inhalt anzeigen, aber jede benutzerdefinierte Benutzeroberfläche, die Sie den Dokumenten hinzufügen, wird nicht angezeigt, und Ihr Code wird nicht ausgeführt.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Excel und Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.
Sie können die Anpassungsassembly mithilfe einer der RemoveCustomization
Methoden entfernen, die vom Visual Studio-Tools für Die Office-Laufzeit bereitgestellt werden. 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 Anpassungsassembly zur Laufzeit
Rufen Sie in Ihrem Anpassungscode die RemoveCustomization Methode (für Word) oder die RemoveCustomization Methode (für Excel) auf. Diese Methode sollte erst aufgerufen werden, wenn die Anpassung nicht mehr benötigt wird.
Wo Sie diese Methode in Ihrem 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 an das Dokument selbst (nicht die Anpassung) erforderlich sind, können Sie eine Benutzeroberfläche bereitstellen, die aufgerufen
RemoveCustomization
wird, wenn der Kunde darauf klickt. Wenn Ihre Anpassung das Dokument beim ersten Öffnen mit Daten auffüllt, aber die Anpassung keine anderen Features bereitstellt, auf die direkt von Kunden zugegriffen wird, können Sie removeCustomization aufrufen, sobald die Anpassung die Initialisierung des Dokuments abgeschlossen hat.
So entfernen Sie die Anpassungsassembly aus einem geschlossenen Dokument oder einem Dokument auf einem Server
Fügen Sie in einem Projekt, für das Microsoft Office nicht erforderlich ist, z. B. eine Konsolenanwendung oder ein Windows Forms-Projekt, einen Verweis auf die Assembly "Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll " hinzu.
Fügen Sie die folgende Imports - oder Using-Anweisung am Anfang der Codedatei hinzu.
Rufen Sie die statische RemoveCustomization Methode der ServerDocument Klasse auf, und geben Sie den Lösungsdokumentpfad für den Parameter an.
Im folgenden Codebeispiel wird davon ausgegangen, dass Sie die Anpassung aus einem Dokument mit dem Namen "WordDocument1.docx " entfernen, 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); }
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 muss die Visual Studio 2010-Tools für Office-Laufzeit installiert sein.