リストと関連付けなしにイベント受信機を展開します
-
10-12-2019 - |
質問
私は展開したいVisual Studioで開発されたイベント受信機を持っています。しかし、この場合、私はそれを関連付けることなくそれを展開したいです。(イベント受信者をPowerShell経由で特定のリストに追加します。)
Scope
をSite
に設定した場合、レシーバはすべてのリストとライブラリに対して発光します。そして、Scope
をWeb
に設定し、ListUrl
の値を指定した場合、指定されたリストにのみバインドされます。
しかし、Scope
をWeb
に設定し、ListUrl
を指定しないと、Site
と同じように機能し、すべてにバインドします。これが私のコードです
<?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>
.
は、何でもバインドされずに受信機を展開してアクティブ化する方法はありますか?
解決
イベント受信機をデプロイし、機能を有効にしないでください。要素ファイルは、機能が有効になっているときにイベント受信側をリストに添付します。その後、PowerShellからリストにイベント受信側を添付してください。
他のヒント
イベント受信側を特定のリストに追加する方法は、イベントの種類にイベント受信者を追加します。
ステップ:
- リストのカスタムコンテンツタイプを作成する
- コンテンツタイプにイベント受信者を追加する
- イベントを登録するために、コンテンツタイプを特定のリストに追加する
受信機
その場合は、どのリストをどのリストを登録する必要があるかを制御できます。
素晴らしい記事を参照してください。/ A>詳細については
あなたの場合はあなたは機能を必要としません。
必要なのは、Event Receiverクラスを使用したクラスライブラリで、アセンブリに署名してGACにデプロイするだけです。その後、PowerShellを使用すると、必要なリストのイベント受信者を登録します。
実際にWebに存在しないダミーリストにどのように添付してから、後でPowerShellを使用して実際のリストに接続します。