문제

배포하려는 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에서 나열할 이벤트 수신기를 연결합니다.

다른 팁

특정 목록에 이벤트 수신기를 추가하는 또 다른 옵션이 있습니다. 이벤트 수신기를 콘텐츠 유형에 추가하는 것입니다.

단계:

  • 목록에 대한 사용자 정의 콘텐츠 유형 만들기
  • 콘텐츠 유형에 이벤트 수신기 추가
  • 이벤트 수신기를 등록하려면 특정 목록에 컨텐츠 유형 추가

이 경우 이벤트 수신기를 등록해야 하는 목록을 제어할 수 있습니다.

좋은 글을 참고해주세요 연습 3 – 콘텐츠 유형에 대한 이벤트 수신기 개발 자세한 내용은.

귀하의 경우에는 기능이 필요하지 않습니다.
필요한 것은 이벤트 수신기 클래스가 포함된 클래스 라이브러리이며, 어셈블리에 서명하고 이를 GAC에 배포하는 것입니다.그런 다음 PowerShell을 사용하여 원하는 목록에 대한 이벤트 수신기를 등록합니다.

웹에 실제로 존재하지 않는 더미 목록에 첨부한 후 나중에 Powershell을 사용하여 실제 목록에 첨부하는 것은 어떻습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top