Procedura: Rimuovere estensioni di codice gestito dai documenti

È possibile rimuovere a livello di codice l'assembly di personalizzazione da un documento o una cartella di lavoro che fa parte di una personalizzazione a livello di documento per Microsoft Office Word o Microsoft Office Excel. Gli utenti possono quindi aprire i documenti e visualizzare il contenuto, ma qualsiasi interfaccia utente personalizzata aggiunta ai documenti non verrà visualizzata e il codice non verrà eseguito.

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

È possibile rimuovere l'assembly di personalizzazione usando uno dei RemoveCustomization metodi forniti da Visual Studio Tools per Office Runtime . Il metodo da usare dipende dal fatto che si voglia rimuovere la personalizzazione in fase di esecuzione, ovvero eseguendo codice nella personalizzazione mentre il documento di Word o la cartella di lavoro di Excel è aperto, oppure se si vuole rimuovere la personalizzazione da un documento chiuso o da un documento che si trova in un server in cui non è installato Microsoft Office.

Per rimuovere l'assembly di personalizzazione in fase di esecuzione

  1. Nel codice di personalizzazione chiamare il RemoveCustomization metodo (per Word) o RemoveCustomization il metodo (per Excel). Questo metodo deve essere chiamato solo dopo che la personalizzazione non è più necessaria.

    La chiamata di questo metodo nel codice dipende dal modo in cui viene usata la personalizzazione. Ad esempio, se i clienti usano le funzionalità della personalizzazione fino a quando non sono pronti a inviare il documento ad altri client che hanno solo bisogno del documento stesso (non della personalizzazione), è possibile fornire un'interfaccia utente che chiama quando il cliente fa clic su di RemoveCustomization esso. In alternativa, se la personalizzazione popola il documento con dati quando viene aperto per la prima volta, ma la personalizzazione non fornisce altre funzionalità accessibili direttamente dai clienti, è possibile chiamare RemoveCustomization non appena la personalizzazione termina l'inizializzazione del documento.

Per rimuovere l'assembly di personalizzazione da un documento chiuso o da un documento in un server

  1. In un progetto che non richiede Microsoft Office, ad esempio un'applicazione console o un progetto Windows Forms, aggiungere un riferimento all'assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll.

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

    using Microsoft.VisualStudio.Tools.Applications;
    
    Imports Microsoft.VisualStudio.Tools.Applications
    
  3. Chiamare il metodo RemoveCustomization statico della classe e specificare il percorso del documento della soluzione per il parametro ServerDocument .

    Nell'esempio di codice seguente si presuppone che si rimuovono la personalizzazione da un documento WordDocument1.docx che si trova sul desktop.

    string documentPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx";
    int runtimeVersion = 0;
    
    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
    
        if (runtimeVersion == 3)
        {
            ServerDocument.RemoveCustomization(documentPath);
            System.Windows.Forms.MessageBox.Show("The customization has been removed.");
        }
    }
    catch (FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (IOException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.");
    }
    catch (InvalidOperationException ex)
    {
        System.Windows.Forms.MessageBox.Show("The customization could not be removed.\n" +
            ex.Message);
    }
    
    Dim documentPath As String = System.Environment.GetFolderPath( _
        Environment.SpecialFolder.Desktop) & "\WordDocument1.docx"
    Dim runtimeVersion As Integer = 0
    
    Try
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 3 Then
            ServerDocument.RemoveCustomization(documentPath)
            System.Windows.Forms.MessageBox.Show("The customization has been removed.")
        End If
    Catch ex As FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As IOException
        System.Windows.Forms.MessageBox.Show("The specified document is read-only.")
    Catch ex As InvalidOperationException
        System.Windows.Forms.MessageBox.Show("The customization could not be removed." & _
            vbLf & ex.Message)
    End Try
    
  4. Compilare il progetto ed eseguire l'applicazione nel computer in cui si vuole rimuovere la personalizzazione. Nel computer deve essere installato Visual Studio 2010 Tools per Office.

Vedi anche