ServerDocument.AddCustomization, méthode (String, Uri)
Joint une personnalisation au document spécifié en utilisant le nom de l'assembly spécifié et le manifeste de déploiement.
Espace de noms : Microsoft.VisualStudio.Tools.Applications
Assembly : Microsoft.VisualStudio.Tools.Applications.ServerDocument (dans Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)
Syntaxe
'Déclaration
Public Shared Sub AddCustomization ( _
documentPath As String, _
deploymentManifestUrl As Uri _
)
public static void AddCustomization(
string documentPath,
Uri deploymentManifestUrl
)
Paramètres
- documentPath
Type : System.String
Chemin d'accès complet du document auquel vous voulez joindre une personnalisation.
- deploymentManifestUrl
Type : System.Uri
URL du manifeste de déploiement pour la solution.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | documentPath ou deploymentManifestUrl est nullune référence null (Nothing en Visual Basic) ou vide. |
ArgumentException | deploymentManifestUrl ne spécifie pas une URL absolue. |
FileNotFoundException | documentPath ou deploymentManifestUrl fait référence à un fichier qui n'existe pas. |
DocumentAlreadyCustomizedException | Le document spécifié par documentPath a déjà une personnalisation. |
InvalidManifestException | Le manifeste de déploiement spécifié par deploymentManifestUrl n'est pas un manifeste de déploiement valide. |
DocumentNotCustomizedException | Le document spécifié par documentPath est corrompu ou il a des autorisations limitées. |
UnknownCustomizationFileException | Le document spécifié par documentPath a une extension de nom de fichier qui n'est pas prise en charge par Visual Studio Tools pour Office Runtime. |
Notes
La méthode AddCustomization associe la personnalisation spécifiée au document en ajoutant les propriétés de document personnalisées _AssemblyName et _AssemblyLocation au document. Ces propriétés identifient que le document a une personnalisation et spécifient l'emplacement du manifeste de déploiement. Après l'appel de cette méthode, la prochaine fois qu'un utilisateur ouvre le document spécifié, l'exécution essaie d'installer la solution Office. Pour plus d'informations sur les propriétés de document personnalisées, consultez Vue d'ensemble des propriétés de document personnalisées.
Si le document spécifié ne contient pas un contrôle que la personnalisation s'attend à trouver dans le document, la méthode AddCustomization aboutit, mais le chargement de l'assembly échoue lorsque l'utilisateur ouvre le document.
Le paramètre fileType doit spécifier un document qui a une extension de nom de fichier prise en charge pour les personnalisations au niveau du document. Vous ne pouvez pas joindre de personnalisation à un document enregistré au format de fichier Document XML Word (*.xml) ou Document Word 2003 XML (*.xml). Pour plus d'informations sur les types de fichiers pris en charge, consultez Architecture des personnalisations au niveau du document.
Exemples
L'exemple de code suivant utilise la méthode AddCustomization pour joindre une personnalisation au document spécifié.
Cet exemple nécessite les actions ou les éléments suivants :
Projet d'application console ou un autre projet non-Office.
Références aux assemblys suivants :
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.dll (si le projet cible .NET Framework 4).
ou
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll et Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si le projet cible le .NET Framework 3.5).
Instructions Imports (pour Visual Basic) ou using pour C#) pour les espaces de noms Microsoft.VisualStudio.Tools.Applications et Microsoft.VisualStudio.Tools.Applications.Runtime au haut de votre fichier de code.
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);
}
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.