Partager via


Comment : joindre des extensions de code managé à des documents (Office System 2007)

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés.

Type de projet

  • Projets au niveau du document

Version de Microsoft Office

  • Version 2007 de Microsoft Office System

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Vous pouvez attacher une personnalisation Visual Studio Tools pour Office à un document Microsoft Office Word 2007 ou un classeur Microsoft Office Excel 2007 existant. Le document ou classeur peut être dans n'importe quel format de fichier pris en charge par Visual Studio Tools pour Office. Pour plus d'informations, consultez Architecture des personnalisations au niveau du document.

Remarque :

Le chargement de la personnalisation échouera si le code attend des contrôles que le document spécifié ne possède pas.

Pour joindre une personnalisation Visual Studio Tools pour Office à un document Word ou Excel, utilisez la méthode AddCustomization de la classe ServerDocument. Comme la classe ServerDocument est conçue pour s'exécuter sur un ordinateur où Microsoft Office n'est pas installé, vous pouvez utiliser cette méthode dans des solutions qui ne reposent pas sur des projets Visual Studio Tools pour Office (telle qu'une application console ou Windows Forms).

Pour joindre des extensions de code managé à un document

  1. Créez un projet qui ne démarre pas Word ou Excel, comme une application console ou un projet Windows Forms.

  2. Dans le nouveau projet, ajoutez une référence aux assemblys suivants.

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

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

  3. Ajoutez l'instruction Imports ou using suivante en haut de votre fichier de code.

    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Appelez la méthode AddCustomization statique.

    L'exemple de code suivant utilise la surcharge AddCustomization. Cette surcharge utilise le chemin d'accès complet du document et un Uri qui spécifie l'emplacement du manifeste de déploiement pour la personnalisation que vous voulez joindre au document. Cet exemple part du principe qu'un document Word appelé WordDocument1.docx est affiché sur le Bureau et que le manifeste de déploiement se trouve dans le dossier Publish, également sur le Bureau.

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

Voir aussi

Tâches

Comment : pour écrire du code qui utilise les deux versions de la classe ServerDocument

Comment : supprimer des extensions de code managé de documents (Office System 2007)

Comment : supprimer des extensions de code managé de documents (Office System 2003)

Comment : joindre des extensions de code managé à des documents (Office System 2003)

Concepts

Gestion de documents sur un serveur à l'aide de la classe ServerDocument

Manifestes d'application et de déploiement dans les solutions Office