N-Tiers開發方式(COM+元件的註冊、修改)

摘要:N-Tiers開發方式(COM+元件的註冊、修改)

當COM+的元件已經撰寫完成後,接著就是要如何將撰寫好的元件註冊的主機的【元件服務】上

以往小喵用VB6撰寫元件,要註冊元件時,只需要在元件服務中建立空的Package,然後將寫好的元件托拉進去即可,要修改時,只要元件的機碼相容,也只需要將Package停止後,將元件覆蓋即可。請參考元件撰寫、註冊過程錄影檔

但是進入.NET開發元件,小喵發現無法使用原來的方式處理,必須透過【.NET Framework 2.0】的【SDK命令提示字元】,使用這樣的Command視窗透過下指令的方式來註冊,註冊後元件會依照原件撰寫時所指定的Package存放,而如果該Package不存在,也會自動產生

首先Server除了要安裝.NET Framework 2.0以外,還得安裝SDK才能使用,相關鏈結如下:

註冊與反註冊過程如下

首先準備好兩個批次檔,分別用來註冊與反註冊元件

  • 註冊元件(RegNetCom.bat):
     REGSVCS %1.dll
    GACUTIL /i %1.dll
  • 反註冊元件(UnRegNetCom.bat):
     GACUTIL /u %1
    REGSVCS /u %1.dll
  • 有人反應原有方式GAC無法移除,所以小喵稍微改寫了一下,這樣註冊移除就可以都正常了。【New

安裝完.NET Framework SDK後,會有【SDK命令提示字元】,首先將您要註冊的元件,複製到適當的目錄中,小喵通常是將相關的dll複製到【D:\Application\(專案名稱)\】中,其中專案名稱依不同需求會訂定不同的名稱,例如:D:\Application\PDMO

接著將以上兩個批次檔(RegNetCom.bat、UnRegNetCom.bat)也複製到該資料夾中

然後開啟【SDK命令提示字元】,假設元件產生後的dll名稱為PDMOMenu.dll那麼下以下指令:

  • 註冊時:
    RegNetCom PDMOMenu
  • 反註冊(移除)時:
    UnRegNetCom PDMOMenu

反註冊時必須注意:元件是否有被呼叫起來→如果有→先停止Package

當元件註冊完後,如果是該Package的第一個元件,還需針對元件設定【使用者識別】讓呼叫元件時可切換指定的帳號權限執行,方式如下:

  • 在Package上按右鍵→內容
  • 識別碼→使用下列使用者
  • 瀏覽→選取適當使用者→輸入該帳號密碼
  • 確認

這樣就能夠依據需求,在呼叫該Package中的元件時,切換身分為指定的使用者,透過該使用者的權限來執行元件了


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat