[WSS 3.0] Use Visual Studio 2008 to Create an Event Handler Feature

[WSS 3.0] Use Visual Studio 2008 to Create an Event Handler Feature

此範例分三個部份:

  1. 前置動作
  2. 使用Visual Studio 2008建立Event Handler
  3. 將Event Handler新增至Windows SharePoint Services Feature裡

1.  前置動作

(1) 需先安裝 Windows SharePoint Services 3.0 Tools Visual Studio 2008 Extensions, Version 1.2 ,
安裝語言需視Visual Studio 2008做更動,此
連結為 English
(2) 先手動在頂層網站新增一自訂清單(Custom List),
        名稱為{TestList},網址為{http://localhost/Lists/TestList/AllItems.aspx}
        此清單為
要安裝Event Handler的清單

2.  使用 Visual Studio 2008 建立 Event Handler

(1) 在Visual Studio 2008上選【檔案(F)】→【新增(N)】→【專案(P)… Ctrl+Shift+N】

(2) 專案類型選【SharePoint】,範本選【空專案】→輸入【名稱(N)】為【EventHandlerTest】→【確定】

(3) 在【方案總管】底下的 class 名稱上,【按滑鼠右鍵】→【加入(D)】→【新增項目(W)…】

(4) 分類選【SharePoint】,Visual Studio 安裝的範本選【事件接收器】(Event Receiver),
      輸入【名稱(N)】為【CustomListEventReceiver】

(5) 打開【ItemEventReceiver.cs】

(6) 找到【ItemAdded】事件,並將註解取消,輸入程式碼
     
ItemAdded

(7) 在Visual Studio 2008上選【建置(B)】→【建置方案(B)】,或按【Ctrl+Shift+B】

(8) 將專案裡 bin\Debug 資料夾底下的【EventHandlerTest.dll】檔案拖曳至【assembly】
     
assembly

 

3.  將Event Handler新增至 Windows SharePoint Services Feature 裡

(1) 在【Local_Drive:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/FEATURES 】
      底下建立一名為【EventHandlerTest】的資料夾

(2) 在【EventHandlerTest】資料夾底下建立一名為【Feature.xml】的檔案,內容如下
      <Feature Scope="Web"
        Title="Event Handler Test"
         Id="GUID"
         xmlns="http://schemas.microsoft.com/sharepoint/">
         <ElementManifests>
            <ElementManifest Location="Elements.xml"/>
         </ElementManifests>
      </Feature>

(3) 將 GUID 內容改為【ItemEventReceiver.cs】檔案內容裡最上方的 GUID 內容
     
Guid

     <Feature Scope="Web"
        Title="Event Handler Test"
         Id="3e776e49-61d3-45dd-b42c-d994d3e7b503"
         xmlns="http://schemas.microsoft.com/sharepoint/">
         <ElementManifests>
            <ElementManifest Location="Elements.xml"/>
         </ElementManifests>
      </Feature>

(4) 同樣在【EventHandlerTest】資料夾底下建立一名為【Elements.xml】的檔案,內容如下
      <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
         <Receivers ListTemplateId="100">
            <Receiver>
               <Name>CustomListEventReceiver</Name>
               <Type>ItemAdded</Type>
               <SequenceNumber>10000</SequenceNumber>
               <Assembly>EventHandlerTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5</Assembly>
               <Class>EventHandlerTest.EventReceiverItemEventReceiver</Class>
               <Data></Data>
               <Filter></Filter>
            </Receiver>
         </Receivers>
      </Elements>

(5) Assembly 的內容為 Local_Drive:\WINDOWS\assembly 底下,在之前已註冊的 dll 名稱上按滑鼠右鍵,選【內容(R)】
     
assembly2

(6) ListTemplateId 的部份,可參考 ListTemplate

(7) 開啟 command prompt 後,切換至\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN
  
目錄底下,輸入以下指令:
      stsadm -o installfeature -filename EventHandlerTest\Feature.xml
      stsadm -o activatefeature -filename EventHandlerTest\Feature.xml -url http://localhost/Lists/TestList
      iisreset
     
cmd

(8) 在 TestList 清單裡新增一個項目,看 C:\ 底下是否有 EventHandlerTest.log 檔案及內容

(9) 如果需要解除安裝,則輸入以下指令:
      stsadm -o deactivatefeature -filename EventHandlerTest\Feature.xml -url http://localhost/Lists/TestList
      stsadm -o uninstallfeature -filename EventHandlerTest\Feature.xml
      iisreset

Reference From : How to: Create an Event Handler Feature