Condividi tramite


Procedura: associare estensioni di codice gestito a documenti

È possibile associare un assembly di personalizzazione a un documento di Microsoft Office Word o a una cartella di lavoro di Microsoft Office Excel esistenti. Il documento o la cartella di lavoro può essere in qualsiasi formato di file supportato dai progetti Microsoft Office e dagli strumenti di sviluppo in Visual Studio 2010. Per ulteriori informazioni, vedere Architettura delle personalizzazioni a livello di documento.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Excel 2007, Excel 2010, Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Per associare una personalizzazione a un documento di Word o Excel, utilizzare il metodo AddCustomization della classe ServerDocument. Poiché la classe ServerDocument è progettata per essere eseguita in un computer in cui non è installato Microsoft Office, è possibile utilizzare questo metodo nelle soluzioni non direttamente correlate allo sviluppo Microsoft Office, ad esempio un'applicazione console o Windows Form.

Nota

Non sarà possibile caricare la personalizzazione se il codice prevede la presenza di controlli di cui il documento specificato è privo.

Collegamento a video Per una dimostrazione video correlata, vedere la procedura relativa all'associazione o alla dissociazione di un assembly VSTO da un documento di Word.

Per collegare le estensioni di codice gestito a un documento

  1. In un progetto che non richiede Microsoft Office, ad esempio un'applicazione console o un progetto Windows Form, aggiungere un riferimento a uno degli assembly seguenti:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.dll (se il progetto è destinato a .NET Framework 4).

      oppure

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (se il progetto è destinato a .NET Framework 3.5).

  2. Aggiungere l'istruzione Imports o using seguente all'inizio del file di codice.

    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. Chiamare il metodo statico AddCustomization.

    Nell'esempio di codice riportato di seguito viene utilizzato l'overload AddCustomization, il quale assume il percorso completo del documento e un oggetto Uri che specifica il percorso del manifesto di distribuzione per la personalizzazione che si desidera associare al documento. In questo esempio si presuppone che un documento di Word denominato WordDocument1.docx si trovi sul desktop e che il manifesto di distribuzione sia situato in una cartella denominata Publish anch'essa sul desktop.

    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);
    }
    
  4. Compilare il progetto ed eseguire l'applicazione nel computer in cui si desidera associare la personalizzazione. Nel computer deve essere installato Visual Studio 2010 Tools per Office Runtime.

Vedere anche

Attività

Procedura: rimuovere estensioni di codice gestito dai documenti

Concetti

Gestione dei documenti di un server utilizzando la classe ServerDocument

Manifesti dell'applicazione e di distribuzione nelle soluzioni di Office