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.
Per questo esempio sono necessari 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).
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
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.