Freigeben über


Gewusst wie: Anfügen von verwalteten Codeerweiterungen an Dokumente (2007 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

  • 2007 Microsoft Office System

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

Sie können eine Visual Studio Tools for Office-Anpassung an ein vorhandenes Microsoft Office Word 2007-Dokument oder eine vorhandene Microsoft Office Excel 2007-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.

Hinweis:

Falls vom Code erwartete Steuerelemente nicht im angegebenen Dokument enthalten ist, wird die Anpassung nicht geladen.

Um eine Visual Studio Tools for Office-Anpassung an ein Word- oder Excel-Dokument anzufügen, verwenden Sie die AddCustomization-Methode der ServerDocument-Klasse. Da die ServerDocument-Klasse für die Ausführung auf einem Computer konzipiert ist, auf dem Microsoft Office nicht installiert ist, können Sie diese Methode in Projektmappen verwenden, die nicht auf Visual Studio Tools for Office-Projekten basieren (z. B. eine Konsolen- oder Windows Forms-Anwendung).

So hängen Sie verwaltete Codeerweiterungen an ein Dokument an

  1. Erstellen Sie ein neues Projekt, das nicht Word oder Excel startet, beispielsweise eine Konsolenanwendung oder ein Windows Forms-Projekt.

  2. Fügen Sie im neuen Projekt einen Verweis auf die folgenden Assemblys hinzu.

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll

    • Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll

  3. Fügen Sie am Anfang der Codedatei die folgende Imports-Anweisung bzw. using-Anweisung ein.

    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Rufen Sie die statische AddCustomization-Methode auf.

    Im folgenden Codebeispiel wird die AddCustomization-Überladung verwendet. Diese Überladung akzeptiert den vollständigen Pfad des Dokuments und einen Uri, der den Speicherort des Bereitstellungsmanifests für die Anpassung angibt, die Sie an das Dokument anfügen möchten. In diesem Beispiel wird davon ausgegangen, dass ein Word-Dokument namens WordDocument1.docx sich auf dem Desktop befindet und dass das Bereitstellungsmanifest in einem Ordner namens Publish enthalten ist, der sich ebenfalls auf dem Desktop befindet.

    Dim documentPath As String = System.Environment.GetFolderPath( _
         Environment.SpecialFolder.Desktop) + "\WordDocument1.docx"
    Dim runtimeVersion As Integer = 0
    
    Try
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
    
        ' Make sure that this document does not yet have any Visual Studio Tools 
        ' for Office customizations.
        If runtimeVersion = 0 Then
            Dim deployManifestPath As String = System.Environment.GetFolderPath( _
                Environment.SpecialFolder.Desktop) & "\Publish\WordDocument1.vsto"
            Dim deploymentManifestUri As New Uri(deployManifestPath)
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri)
            System.Windows.Forms.MessageBox.Show("The document was successfully customized.")
        Else
            System.Windows.Forms.MessageBox.Show("The document is already customized.")
        End If
    Catch ex As FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As DocumentNotCustomizedException
        System.Windows.Forms.MessageBox.Show("The document could not be customized." & _
            vbLf & ex.Message)
    End Try
    
    string documentPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx";
    int runtimeVersion = 0;
    
    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
    
        // Make sure that this document does not yet have any Visual Studio Tools 
        // for Office customizations.
        if (runtimeVersion == 0)
        {
            string deployManifestPath = System.Environment.GetFolderPath(
                Environment.SpecialFolder.Desktop) + @"\Publish\WordDocument1.vsto";
    
            Uri deploymentManifestUri = new Uri(deployManifestPath);
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri);
            System.Windows.Forms.MessageBox.Show("The document was successfully customized.");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show("The document is already customized.");
        }
    }
    catch (FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (DocumentNotCustomizedException ex)
    {
        System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" +
            ex.Message);
    }
    

Siehe auch

Aufgaben

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

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

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

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

Konzepte

Verwalten von Dokumenten auf einem Server mit der ServerDocument-Klasse

Anwendungs- und Bereitstellungsmanifeste in Office-Projektmappen