Freigeben über


ServerDocument.AddCustomization-Methode (String, Uri)

Fügt mithilfe des angegebenen Assemblynamens und Bereitstellungsmanifests eine Anpassung an das angegebene Dokument an.

Namespace:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Syntax

'Declaration
Public Shared Sub AddCustomization ( _
    documentPath As String, _
    deploymentManifestUrl As Uri _
)
public static void AddCustomization(
    string documentPath,
    Uri deploymentManifestUrl
)

Parameter

  • documentPath
    Typ: System.String
    Der vollständige Pfad des Dokuments, an das Sie eine Anpassung anfügen möchten.
  • deploymentManifestUrl
    Typ: System.Uri
    Die URL des Bereitstellungsmanifests für die Projektmappe.

Ausnahmen

Ausnahme Bedingung
ArgumentNullException

documentPath oder deploymentManifestUrl hat den Wert nullNULL-Verweis (Nothing in Visual Basic) oder ist leer.

ArgumentException

deploymentManifestUrl gibt keine absolute URL an.

FileNotFoundException

documentPath oder deploymentManifestUrl verweist auf eine Datei, die nicht vorhanden ist.

DocumentAlreadyCustomizedException

Das in documentPath angegebene Dokument verfügt bereits über eine Anpassung.

InvalidManifestException

Das in deploymentManifestUrl angegebene Bereitstellungsmanifest ist kein gültiges Bereitstellungsmanifest.

DocumentNotCustomizedException

Das in documentPath angegebene Dokument ist fehlerhaft oder verfügt über eingeschränkte Berechtigungen.

UnknownCustomizationFileException

Das in documentPath angegebene Dokument hat eine Dateinamenerweiterung, die nicht von Visual Studio Tools for Office-Laufzeit unterstützt wird.

Hinweise

Die AddCustomization-Methode ordnet dem Dokument die angegebene Anpassung zu, indem dem Dokument die angepassten Eigenschaften _AssemblyName und _AssemblyLocation zugeordnet werden. Diese Eigenschaften erkennen, dass das Dokument über eine -Anpassung verfügt, und geben den Speicherort des Bereitstellungsmanifests an. Nachdem diese Methode erfolgreich aufgerufen wurde, versucht die Laufzeit beim nächsten Öffnen des angegebenen Dokuments durch einen Benutzer, die Office-Projektmappe zu installieren. Weitere Informationen über angepasste Dokumenteigenschaften finden Sie unter Übersicht über benutzerdefinierte Dokumenteigenschaften.

Falls ein von der Anpassung erwartetes Steuerelement nicht im angegebenen Dokument enthalten ist, wird zwar die AddCustomization-Methode erfolgreich ausgeführt, aber beim Öffnen des Dokuments durch den Benutzer wird die Assembly nicht geladen.

Der fileType-Parameter muss ein Dokument mit einer Dateinamenerweiterung angeben, das Anpassungen auf Dokumentebene unterstützt. Sie können keine Anpassung an ein Dokument anfügen, das im Word-XML-Dokument- (*.xml) oder Word 2003-XML-Dokument-(*.xml)-Dateiformat gespeichert wird. Weitere Informationen zu den unterstützten Dateitypen finden Sie unter Architektur von Anpassungen auf Dokumentebene.

Beispiele

Im folgenden Codebeispiel wird die AddCustomization-Methode verwendet, um eine Anpassung an das angegebene Dokument anzuhängen.

Für dieses Beispiel sind erforderlich:

  • Ein Konsolenanwendungsprojekt oder ein anderes Nicht-Office-Projekt.

  • Verweise auf die folgenden Assemblys:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll und Microsoft.VisualStudio.Tools.Applications.Runtime.dll (wenn das Projekt auf .NET Framework 4 abzielt)

      oder

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll und Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (wenn das Projekt auf .NET Framework 3.5 abzielt).

  • Imports-Anweisungen (für Visual Basic) oder using-Anweisungen (für C#) für Microsoft.VisualStudio.Tools.Applications- und Microsoft.VisualStudio.Tools.Applications.Runtime-Namespaces am Anfang der Codedatei.

Private Sub AddCustomizationUsingDocumentPath(ByVal documentPath As String, _
    ByVal deployManifestPath As String)
    Dim runtimeVersion As Integer = 0

    Try
        ' Make sure that this document does not yet have any Visual Studio Tools 
        ' for Office customizations.
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 0 Then
            Dim deploymentManifestUri As New Uri(deployManifestPath)
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri)
            MessageBox.Show("The document was successfully customized.")
        Else
            System.Windows.Forms.MessageBox.Show("The document is already customized.")
        End If

    Catch ex As System.IO.FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As UnknownCustomizationFileException
        System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
            "extension that is not supported by Visual Studio Tools for Office.")
    Catch ex As DocumentNotCustomizedException
        System.Windows.Forms.MessageBox.Show("The document could not be customized." & _
        vbLf & ex.Message)
    End Try
End Sub
private void AddCustomizationUsingDocumentPath(string documentPath, string deployManifestPath)
{
    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)
        {
            Uri deploymentManifestUri = new Uri(deployManifestPath);
            ServerDocument.AddCustomization(documentPath, deploymentManifestUri);
            MessageBox.Show("The document was successfully customized.");
        }
        else
        {
            System.Windows.Forms.MessageBox.Show("The document is already customized.");
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (UnknownCustomizationFileException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document has a file " +
            "extension that is not supported by Visual Studio Tools for Office.");
    }
    catch (DocumentNotCustomizedException ex)
    {
        System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" +
            ex.Message);
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

ServerDocument Klasse

AddCustomization-Überladung

Microsoft.VisualStudio.Tools.Applications-Namespace