Partager via


ServerDocument.AddCustomization, méthode (String, Uri)

Joint une personnalisation au document spécifié en utilisant le nom de l'assembly spécifié et le manifeste de déploiement.

Espace de noms :  Microsoft.VisualStudio.Tools.Applications
Assembly :  Microsoft.VisualStudio.Tools.Applications.ServerDocument (dans Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Syntaxe

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

Paramètres

  • documentPath
    Type : System.String
    Chemin d'accès complet du document auquel vous voulez joindre une personnalisation.
  • deploymentManifestUrl
    Type : System.Uri
    URL du manifeste de déploiement pour la solution.

Exceptions

Exception Condition
ArgumentNullException

documentPath ou deploymentManifestUrl est nullune référence null (Nothing en Visual Basic) ou vide.

ArgumentException

deploymentManifestUrl ne spécifie pas une URL absolue.

FileNotFoundException

documentPath ou deploymentManifestUrl fait référence à un fichier qui n'existe pas.

DocumentAlreadyCustomizedException

Le document spécifié par documentPath a déjà une personnalisation.

InvalidManifestException

Le manifeste de déploiement spécifié par deploymentManifestUrl n'est pas un manifeste de déploiement valide.

DocumentNotCustomizedException

Le document spécifié par documentPath est corrompu ou il a des autorisations limitées.

UnknownCustomizationFileException

Le document spécifié par documentPath a une extension de nom de fichier qui n'est pas prise en charge par Visual Studio Tools pour Office Runtime.

Notes

La méthode AddCustomization associe la personnalisation spécifiée au document en ajoutant les propriétés de document personnalisées _AssemblyName et _AssemblyLocation au document. Ces propriétés identifient que le document a une personnalisation et spécifient l'emplacement du manifeste de déploiement. Après l'appel de cette méthode, la prochaine fois qu'un utilisateur ouvre le document spécifié, l'exécution essaie d'installer la solution Office. Pour plus d'informations sur les propriétés de document personnalisées, consultez Vue d'ensemble des propriétés de document personnalisées.

Si le document spécifié ne contient pas un contrôle que la personnalisation s'attend à trouver dans le document, la méthode AddCustomization aboutit, mais le chargement de l'assembly échoue lorsque l'utilisateur ouvre le document.

Le paramètre fileType doit spécifier un document qui a une extension de nom de fichier prise en charge pour les personnalisations au niveau du document. Vous ne pouvez pas joindre de personnalisation à un document enregistré au format de fichier Document XML Word (*.xml) ou Document Word 2003 XML (*.xml). Pour plus d'informations sur les types de fichiers pris en charge, consultez Architecture des personnalisations au niveau du document.

Exemples

L'exemple de code suivant utilise la méthode AddCustomization pour joindre une personnalisation au document spécifié.

Cet exemple nécessite les actions ou les éléments suivants :

  • Projet d'application console ou un autre projet non-Office.

  • Références aux assemblys suivants :

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.dll (si le projet cible .NET Framework 4).

      ou

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si le projet cible le .NET Framework 3.5).

  • Instructions Imports (pour Visual Basic) ou using pour C#) pour les espaces de noms Microsoft.VisualStudio.Tools.Applications et Microsoft.VisualStudio.Tools.Applications.Runtime au haut de votre fichier de code.

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);
    }
}

Sécurité .NET Framework

Voir aussi

Référence

ServerDocument Classe

AddCustomization, surcharge

Microsoft.VisualStudio.Tools.Applications, espace de noms