Déployer récepteur d'événements sans s'associer avec n'importe quelle liste
-
10-12-2019 - |
Question
J'ai un récepteur d'événement que j'ai développé avec Visual Studio que je souhaite déployer.Mais dans ce cas, je veux déployer sans l'associer avec n'importe quelle liste.(J'ai ajouté le récepteur d'événement à une liste spécifique plus tard, via PowerShell.)
Je sais que si j'ai mis le Scope
pour Site
ensuite, le récepteur se déclenche pour toutes les listes et bibliothèques.Et je sais que si j'ai mis le Scope
pour Web
et de fournir une valeur pour ListUrl
il sera seulement se lier à la liste spécifiée.
Cependant, il semble que si je mets le Scope
pour Web
et ne spécifiez pas un ListUrl
, il agit de la même manière que Site
et se lie à tout.Voici mon code
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers Scope="Web">
<Receiver>
<Name>AutoNumberDocumentItemAdded</Name>
<Type>ItemAdded</Type
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>ArticleManagementWorkflow.AutoNumberDocument.AutoNumberDocument</Class>
<SequenceNumber>10000</SequenceNumber>
<Synchronization>Synchronous</Synchronization>
</Receiver>
</Receivers>
</Elements>
Est-il un moyen de déployer et activer le récepteur sans qu'il soit lié à quelque chose?
La solution
Déployer le récepteur d'événements et de ne pas activer la Fonction.Les éléments de fichier ne s'attache le récepteur d'événements de la liste lorsque la fonction est activée.Fixez le récepteur d'événement à la liste de vos powershell par la suite.
Autres conseils
Il y a une autre option comment faire pour ajouter un Événement Récepteur à une Liste spécifique - ajouter le Récepteur d'Événements pour le Type de Contenu.
Étapes:
- Créer Type de Contenu personnalisé pour une Liste
- Ajouter le Récepteur d'Événements pour le Type de Contenu
- Ajouter un Type de Contenu à une Liste spécifique afin de vous inscrire à l'Événement Récepteur
Dans ce cas, vous serez en mesure de contrôler la Liste d'un Récepteur d'Événement doit être enregistré.
Veuillez consulter un grand article Procédure pas à pas 3 – le Développement d'un Récepteur d'Événement pour un Type de Contenu pour plus de détails.
Dans votre cas, vous n'avez pas besoin d'une fonctionnalité.
Tous vous avez besoin est une bibliothèque de classe avec votre récepteur d'événements de classe, signe de l'assemblée et de la déployer à GAC.Puis avec PowerShell enregistrer le récepteur d'événements de la liste que vous souhaitez.
Comment à propos de l'attachement à une liste factice qui n'existe pas réellement dans le web, puis plus tard, de l'attacher à la liste à l'aide de Powershell.