[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