Condividi tramite


Metodo ServerDocument.AddCustomization (String, Uri)

Associa una personalizzazione al documento specificato utilizzando il nome assembly e il manifesto di distribuzione specificati.

Spazio dei nomi:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Sintassi

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

Parametri

  • documentPath
    Tipo: System.String
    Percorso completo del documento al quale si desidera associare una personalizzazione.
  • deploymentManifestUrl
    Tipo: System.Uri
    URL del manifesto di distribuzione per la soluzione.

Eccezioni

Eccezione Condizione
ArgumentNullException

L'oggetto documentPath o deploymentManifestUrl è nullriferimento null (Nothing in Visual Basic) o vuoto.

ArgumentException

deploymentManifestUrl non specifica un URL assoluto.

FileNotFoundException

documentPath o deploymentManifestUrl fa riferimento a un file inesistente.

DocumentAlreadyCustomizedException

Il documento specificato da documentPath include già una personalizzazione.

InvalidManifestException

Il manifesto di distribuzione specificato da deploymentManifestUrl non è valido.

DocumentNotCustomizedException

Il documento specificato da documentPath è corrotto oppure dispone di autorizzazioni limitate.

UnknownCustomizationFileException

L'estensione di file del documento specificata da documentPath non è supportata dal Runtime di Visual Studio Tools per Office.

Note

Il metodo AddCustomization associa al documento la personalizzazione specificata aggiungendo al documento le proprietà personalizzate _AssemblyName e _AssemblyLocation.Tali proprietà indicano che il documento è dotato di una personalizzazione e specificano il percorso del manifesto di distribuzione.Dolo la chiamata a questo metodo, la volta successiva che un utente apre il documento specificato, il runtime tenterà di installare la soluzione Office.Per ulteriori informazioni sulle proprietà personalizzate dei documenti, vedere Cenni preliminari sulle proprietà personalizzate dei documenti.

Se il documento specificato non include un controllo previsto dalla personalizzazione, il metodo AddCustomization viene eseguito correttamente, tuttavia l'assembly non verrà caricato all'apertura del documento.

Il parametro fileType deve specificare un documento con l'estensione supportata per le personalizzazioni a livello di documento.Non è possibile associare una personalizzazione a un documento salvato in formato Word XML Document (*xml) o Word 2003 XML Document (*xml).Per ulteriori informazioni sui tipi di file supportati, vedere Architettura delle personalizzazioni a livello di documento.

Esempi

Nell'esempio di codice seguente viene utilizzato il metodo AddCustomization per associare una personalizzazione al documento specificato.

L'esempio presenta i seguenti requisiti:

  • Progetto di applicazione console o qualche altro progetto non-Office.

  • Riferimenti ai seguenti assembly:

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

      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).

  • Istruzioni Imports (per Visual Basic) o using (per C#) per gli spazi dei nomi Microsoft.VisualStudio.Tools.Applications e Microsoft.VisualStudio.Tools.Applications.Runtime all'inizio del file di codice

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

Sicurezza di .NET Framework

Vedere anche

Riferimenti

ServerDocument Classe

Overload AddCustomization

Spazio dei nomi Microsoft.VisualStudio.Tools.Applications