Freigeben über


Gewusst wie: Anfügen von verwalteten Codeerweiterungen an Dokumente (2003 System)

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

Microsoft Office-Version

  • Microsoft Office 2003

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Sie können eine Visual Studio Tools for Office-Projektmappenassembly an ein vorhandenes Microsoft Office Word 2003-Dokument oder eine vorhandene Microsoft Office Excel 2003-Arbeitsmappe anfügen. Das Dokument oder die Arbeitsmappe kann in jedem von Visual Studio Tools for Office unterstützten Dateiformat vorliegen. Weitere Informationen hierzu finden Sie unter Architektur von Anpassungen auf Dokumentebene.

Wenn Sie eine Projektmappenassembly an ein Dokument anfügen, das noch nicht über Visual Studio Tools for Office-Anpassungen verfügt, wird dem Dokument von der Visual Studio Tools for Office-Laufzeit automatisch ein Laufzeitspeicher-Steuerelement hinzugefügt. Weitere Informationen finden Sie unter Übersicht über Laufzeitspeicher-Steuerelemente.

Hinweis:

Falls ein von der Projektmappenassembly erwartetes Steuerelement nicht im angegebenen Dokument enthalten ist, wird die Assembly beim Öffnen des Dokuments durch den Benutzer nicht geladen.

Es gibt zwei Möglichkeiten, eine Projektmappenassembly an ein Dokument anzuhängen:

  • Manuelles Festlegen von benutzerdefinierten Dokumenteigenschaften im Dokument selbst.

  • Programmgesteuertes Anhängen der Assembly unter Verwendung der ServerDocument-Klasse.

Verwenden von benutzerdefinierten Dokumenteigenschaften

Sie können eine Visual Studio Tools for Office-Projektmappenassembly an ein Word- oder Excel-Dokument anhängen, indem Sie die benutzerdefinierten Dokumenteigenschaften _AssemblyName und _AssemblyLocation manuell festlegen. Weitere Informationen finden Sie unter Übersicht über benutzerdefinierte Dokumenteigenschaften.

Bei der folgenden Vorgehensweise wird davon ausgegangen, dass Sie die Projektmappenassembly bereits bereitgestellt haben und dass die Projektmappe ein Bereitstellungsmanifest verwendet. Weitere Informationen hierzu finden Sie unter Bereitstellen von Anpassungen auf Dokumentebene (2003 System).

So hängen Sie durch Festlegen der benutzerdefinierten Dokumenteigenschaften eine Projektmappenassembly an

  1. Öffnen Sie das Dokument in Word oder Excel.

  2. Klicken Sie im Menü Datei auf Eigenschaften und dann auf die Registerkarte Benutzerdefiniert.

  3. Legen Sie die _AssemblyName-Eigenschaft fest:

    1. Wenn _AssemblyName in der Liste Eigenschaften angezeigt wird, wählen Sie _AssemblyName aus, und geben Sie im Feld Wert ein Sternchen (*) ein.

    2. Wenn _AssemblyName nicht in der Liste aufgeführt ist, geben Sie im Feld Name die Zeichenfolge _AssemblyName und im Feld Wert ein Sternchen (*) ein. Klicken Sie anschließend auf Hinzufügen.

  4. Legen Sie die _AssemblyLocation-Eigenschaft fest:

    1. Wenn _AssemblyLocation in der Liste Eigenschaften angezeigt wird, wählen Sie _AssemblyLocation aus, und geben Sie im Feld Wert den vollständigen Pfad des Bereitstellungsmanifests ein.

    2. Wenn _AssemblyLocation nicht in der Liste aufgeführt ist, geben Sie im Feld Name die Zeichenfolge _AssemblyLocation und im Feld Wert den vollständigen Pfad des Bereitstellungsmanifests ein. Klicken Sie anschließend auf Hinzufügen.

    Der Speicherort des Bereitstellungsmanifests kann ein Festplattenpfad (C:\deploy\Document1.application), eine Dateifreigabe (\\server\Document1.application) oder eine Website (https://www.contoso.com/Document1.application) sein.

    Hinweis:

    Der Wert einer benutzerdefinierten Dokumenteigenschaft kann bis zu 255 Zeichen enthalten. Bei einem Manifestpfad mit mehr als 255 Zeichen müssen Sie eine Eigenschaft mit dem Namen _AssemblyLocation0 erstellen und diese Eigenschaft auf die ersten 255 Zeichen des Pfads festlegen. Erstellen Sie dann eine Eigenschaft mit dem Namen _AssemblyLocation1, und legen Sie diese Eigenschaft auf die übrigen Zeichen des Manifestpfads fest.

  5. Klicken Sie auf OK. Speichern und schließen Sie das Dokument.

    Beim nächsten Öffnen und Speichern des Dokuments fügt die Visual Studio Tools for Office-Laufzeit die Projektmappenassembly an das Dokument an und erstellt ggf. das Laufzeitspeicher-Steuerelement. Die Visual Studio Tools for Office-Laufzeit legt außerdem den Wert der benutzerdefinierten _AssemblyLocation-Dokumenteigenschaft auf die GUID für das Laufzeitspeicher-Steuerelement fest. Weitere Informationen finden Sie unter Übersicht über Laufzeitspeicher-Steuerelemente.

    Hinweis:

    Das Öffnen und Speichern des Dokuments muss auf einem Computer erfolgen, auf dem die Visual Studio Tools for Office-Laufzeit installiert ist. Weitere Informationen finden Sie unter Gewusst wie: Installieren der Visual Studio Tools for Office Runtime

Verwenden der ServerDocument-Klasse

Sie können eine Visual Studio Tools for Office-Projektmappenassembly an ein Word- oder Excel-Dokument anfügen, indem Sie die AddCustomization-Methode der ServerDocument-Klasse verwenden. Sie müssen Code, der die ServerDocument-Klasse verwendet, in einem neuen Projekt abspeichern, d. h. nicht in der Visual Studio Tools for Office-Projektmappe, sondern z. B. in einem Windows Forms-Projekt. Außerdem muss das Dokument, an das Sie die Assembly anhängen, geschlossen sein, und das Dokument muss sich auf einem Computer befinden, auf dem Word (für Word-Dokumente) bzw. Excel (für Excel-Arbeitsmappen) installiert ist.

Bei der folgenden Vorgehensweise wird davon ausgegangen, dass Sie die Projektmappenassembly bereits bereitgestellt haben und dass die Projektmappe ein Bereitstellungsmanifest verwendet. Weitere Informationen hierzu finden Sie unter Bereitstellen von Anpassungen auf Dokumentebene (2003 System).

So hängen Sie eine Projektmappenassembly mithilfe der ServerDocument-Klasse an ein Dokument an

  1. Erstellen Sie ein neues Projekt vom Typ Windows Forms.

  2. Fügen Sie dem Projekt einen Verweis auf die Assembly Microsoft.VisualStudio.Tools.Applications.Runtime.dll hinzu.

  3. Fügen Sie am Anfang der Codedatei eine Imports-Anweisung oder eine using-Anweisung für die Laufzeit hinzu:

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Rufen Sie die statische AddCustomization-Methode der ServerDocument-Klasse auf, und geben Sie in den Parametern den Projektmappen-Dokumentpfad, den Assemblynamen und den Pfad des Bereitstellungsmanifests an. Beim folgenden Code wird davon ausgegangen, dass Sie einem Word-Dokument mit dem Namen WordDocument1.doc, das sich im Ordner C:\WordDocument1 befindet, eine Assembly hinzufügen und dass sich die Assembly und das Bereitstellungsmanifest unter der Netzwerkfreigabe \\deployserver\WordDocument1\ befinden.

    Private Sub AddNewCustomization()
    
        Dim fileName As String = "C:\WordDocument1\WordDocument1.doc"
    
        If Not ServerDocument.IsCustomized(fileName) Then
    
            Dim assemblyName As String = "\\deployserver\WordDocument1\WordDocument1.dll"
            Dim manifestPath As String = "\\deployserver\WordDocument1\WordDocument1.application"
            Dim applicationVersion As String = "1.0.0.0"
    
            ServerDocument.AddCustomization( _
                fileName, assemblyName, manifestPath, applicationVersion, False)
    
        Else
            System.Windows.Forms.MessageBox.Show( _
                "The specified document is already customized.")
        End If
    End Sub
    
    private void AddNewCustomization()
    {
        string fileName = @"C:\WordDocument1\WordDocument1.doc";
    
        if (!ServerDocument.IsCustomized(fileName))
        {
            string assemblyName = @"\\deployserver\WordDocument1\WordDocument1.dll";
            string manifestPath = @"\\deployserver\WordDocument1\WordDocument1.application";
            string applicationVersion = "1.0.0.0";
    
            ServerDocument.AddCustomization(
                fileName, assemblyName, manifestPath, applicationVersion, false);
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(
                "The specified document is already customized.");
        }
    }
    

    Die Visual Studio Tools for Office-Laufzeit hängt die Projektmappenassembly an das Dokument an und erstellt ggf. das Laufzeitspeicher-Steuerelement. Weitere Informationen finden Sie unter Übersicht über Laufzeitspeicher-Steuerelemente.

Siehe auch

Aufgaben

Gewusst wie: Schreiben von Code, der beide Versionen der ServerDocument-Klasse verwendet

Gewusst wie: Entfernen verwalteter Codeerweiterungen aus Dokumenten (2003 System)

Gewusst wie: Entfernen verwalteter Codeerweiterungen aus Dokumenten (2007 System)

Gewusst wie: Anfügen von verwalteten Codeerweiterungen an Dokumente (2007 System)

Konzepte

Verwalten von Dokumenten auf einem Server mit der ServerDocument-Klasse

Anwendungs- und Bereitstellungsmanifeste in Office-Projektmappen

Übersicht über Laufzeitspeicher-Steuerelemente