Condividi tramite


Procedura: associare estensioni di codice gestito a documenti (System 2007)

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Microsoft Office System 2007

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

È possibile associare una personalizzazione di Visual Studio Tools per Office a un documento di Microsoft Office Word 2007 o a una cartella di lavoro di Microsoft Office Excel 2007 esistenti. Il documento o la cartella di lavoro può essere in qualsiasi formato di file supportato in Visual Studio Tools per Office. Per ulteriori informazioni, vedere la classe Architettura delle personalizzazioni a livello di documento.

Nota:

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

Per associare una personalizzazione di Visual Studio Tools per Office a un documento di Word o di Excel, utilizzare il metodo AddCustomization della classe ServerDocument. Poiché la classe ServerDocument è progettata per l'esecuzione in un computer privo di Microsoft Office, è possibile utilizzare questo metodo in soluzioni non basate su progetti Visual Studio Tools per Office (ad esempio, un'applicazione console o Windows Form).

Per collegare le estensioni di codice gestito a un documento

  1. Creare un nuovo progetto che non avvia Word o Excel, ad esempio un'applicazione console o un progetto Windows Form.

  2. Nel nuovo progetto aggiungere un riferimento agli assembly seguenti.

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

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

  3. 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;
    
  4. 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);
    }
    

Vedere anche

Attività

Procedura: scrivere codice che utilizzi entrambe le versioni della classe ServerDocument

Procedura: rimuovere estensioni di codice gestito da documenti (System 2007)

Procedura: rimuovere estensioni di codice gestito da documenti (System 2003)

Procedura: associare estensioni di codice gestito a documenti (System 2003)

Concetti

Gestione dei documenti di un server utilizzando la classe ServerDocument

Manifesti dell'applicazione e di distribuzione nelle soluzioni di Office