共用方式為


SelfReg 表格

SelfReg 數據表包含需要自我註冊之模組的相關信息。 安裝程式會在模組安裝期間呼叫 DllRegisterServer 函式;它會在模組卸載期間呼叫 DllUnregisterServer。 安裝程式不會自行註冊 EXE 檔案。

SelfReg 數據表具有下列數據行。

類型 鑰匙
檔案_ 識別碼 Y N
成本 整數 N Y

 

File_

File 資料表的第一個數據行的外部索引鍵, 指出需要註冊的模組。

成本

以位元組為單位註冊模組的成本。 這必須是非負數。

言論

強烈建議安裝套件作者不要使用自我註冊。 相反地,他們應該藉由撰寫安裝程式針對此目的提供的一或多個數據表來註冊模組。 如需詳細資訊,請參閱 登錄資料表群組。 擁有中央安裝程式服務的許多優點都會因為自我註冊而遺失,因為自我註冊例程通常會隱藏重要的組態資訊。 避免自我註冊的原因包括:

  • 無法使用 DllUnregisterServer 安全地復原具有自我註冊模塊的安裝,因為無法判斷另一個功能或應用程式是否使用自我註冊密鑰。
  • 如果類別或擴充伺服器註冊是在自我註冊例程內執行,則使用公告的能力會降低。
  • 安裝程式會自動處理每一使用者或每部電腦安裝之登錄數據表中的 HKCR 機碼。 DllRegisterServer 例程目前不支援每個使用者 HKCR 金鑰的概念。
  • 如果多位使用者在同一部計算機上使用自我註冊的應用程式,則每個用戶必須在第一次執行應用程式時安裝該應用程式。 否則安裝程式無法輕易判斷適當的 HKCU 登錄機碼存在。
  • 如果元件同時指定為 run-from-source 且列在 SelfReg 數據表中,則 DllRegisterServer 可能會拒絕存取網路資源,例如類型連結庫。 這可能會導致安裝元件在系統管理安裝期間失敗。
  • 自我登錄 DLL 更容易編碼錯誤,因為每個 DLL DllRegisterServer 所需的新程式代碼通常不同。 請改用資料庫中的登錄數據表,利用安裝程式所提供的現有程序代碼。
  • 自我註冊 DLL 有時會連結到不存在或錯誤的輔助 DLL。 相反地,安裝程式可以使用登錄數據表來註冊 DLL,而不需要相依於系統的目前狀態。

注意

您無法使用 SelfRegModulesSelfUnRegModules 動作來指定安裝程式註冊或取消註冊自我註冊 DLL 的順序。 請參閱 指定自我註冊的順序

 

驗證

ICE03
ICE06
ICE32