SelfReg 資料表
SelfReg 資料表包含需要自我註冊之模組的相關資訊。 安裝程式會在安裝模組期間呼叫 DllRegisterServer 函式;它會在模組卸載期間呼叫 DllUnregisterServer 。 安裝程式不會自行註冊 EXE 檔案。
SelfReg 資料表具有下列資料行。
-
檔_
-
File 資料表的第一個資料行的外部索引鍵,指出需要註冊的模組。
-
成本
-
以位元組為單位註冊模組的成本。 這必須是非負數。
強烈建議安裝套件作者使用自我註冊。 相反地,他們應該藉由撰寫安裝程式所提供的一或多個資料表來註冊模組,以供此用途使用。 如需詳細資訊,請參閱 登錄資料表群組。 擁有中央安裝程式服務的許多優點都會因為自我註冊常式而遺失,因為自我註冊常式通常會隱藏重要的組態資訊。 避免自我註冊的原因包括:
- 使用 DllUnregisterServer 安全地復原具有自我註冊模組的安裝,因為沒有辦法告知其他功能或應用程式是否使用自我註冊金鑰。
- 如果類別或擴充伺服器註冊是在自我註冊常式內執行,則會減少使用公告的能力。
- 安裝程式會自動處理每一使用者或每部電腦安裝之登錄資料表中的 HKCR 機碼。 DllRegisterServer 常式目前不支援每個使用者 HKCR 金鑰的概念。
- 如果多個使用者在同一部電腦上使用自我註冊的應用程式,則每個使用者第一次執行應用程式時都必須安裝應用程式。 否則,安裝程式無法輕易判斷適當的 HKCU 登錄機碼存在。
- 如果元件同時指定為 Run-from-source 且列在 SelfReg 資料表中, DllRegisterServer 可以拒絕對網路資源的存取,例如型別程式庫。 這可能會導致元件在系統管理安裝期間無法安裝。
- 自我註冊 DLL 較容易撰寫程式碼錯誤,因為每個 DLL 所需的新程式碼通常不同。 請改用資料庫中的登錄資料表,利用安裝程式所提供的現有程式碼。
- 自我註冊 DLL 有時會連結至不存在或錯誤的輔助 DLL。 相反地,安裝程式可以使用登錄資料表來註冊 DLL,而不需要相依于系統的目前狀態。
注意
您無法使用 SelfRegModules 和 SelfUnRegModules 動作來指定安裝程式註冊或取消註冊自我註冊 DLL 的順序。 請參閱 指定自我註冊的順序。