啟動相依性概述
Feature 啟動相依性表示兩個 Feature 之間的必要關係,無論在相同範圍或跨不同範圍均可建立。典型跨範圍範例:網站 Feature 相依於網站集 Feature。
使用啟動相依性的兩大目的
- Feature 群組概念:啟動一個 Feature 時自動啟動相依 Feature。例如「小組共同作業」Feature 啟動時會透過相依關係啟用多個其他 Feature,使特定清單模板可用;停用時相依 Feature 也會跟著停用(若無其他 Feature 相依)。
- Feature 資源保障:確保資源 Feature(如網站集層級的內容類型)與實作 Feature(如網站層級的使用邏輯)同時啟動。
啟動相依性規則
相同範圍規則
- 若 Feature A 相依於同範圍的 Feature B,且 B 為停用狀態,WSS 會在啟動 A 時自動啟動 B。
- 停用 Feature 時,若該 Feature 為最後一個相依於某隱藏 Feature 的可見 Feature,WSS 會同步停用該隱藏 Feature。
跨範圍規則
- 不支援向較小範圍相依:網站集 Feature 不能相依於網站 Feature。
- 不支援相依於不可見 Feature:網站 Feature 不能相依於 UI 中不可見的網站集 Feature。
- 相依 Feature 必須已啟動:若網站 Feature 相依於網站集 Feature,但該網站集 Feature 為停用狀態,則網站 Feature 啟動失敗(或包含該 Feature 的網站定義無法佈建)。
一般規則
- 相依深度限制為一層:不支援相依鏈。WSS 不支援超過一層的啟動相依(若最終 Feature 為可見)。可見 Feature A → 可見 Feature B → 可見 Feature C 不允許;但可見 Feature A → 可見 Feature B → 隱藏 Feature C 允許。
- 可相依於隱藏或可見 Feature,但隱藏 Feature 不能擁有啟動相依性。
Hidden 屬性決定 Feature 是否顯示於 UI。
- 多重相依風險:若可見 Feature B 與可見 Feature C 皆相依於隱藏 Feature A,停用 B 會連帶停用 A,導致 C 處於錯誤狀態(缺少必要相依)。
最佳實務建議
- 設計相依關係時嚴格遵循「範圍由大到小」(Farm → WebApplication → Site → Web)。
- 將共用資源(內容類型、欄位、工作流定義)封裝於網站集層級隱藏 Feature,供網站層級 Feature 相依。
- 避免建立可見 Feature 之間的直接相依鏈,改用隱藏 Feature 作為中介層。
- 部署前驗證相依拓撲,確保無循環相依與超深度相依。