Feature.xml文件
在一個 Feature.xml 文件中, Feature元素定義了其本身,並指定了相關的DLL組件,文件等的位置,或是一些用於支持該Feature的屬性。
Feature
ActivationDependencIEs
ActivationDependency
ElementManifests
ElementFile
ElementManifest
Properties
Property
Feature
定義一個可以在特定范圍激活或關閉的Feature。
<Feature
ActivateOnDefault = "TRUE" | "FALSE"
AlwaysForceInstall = "TRUE" | "FALSE"
AutoActivateInCentralAdmin = "TRUE" | "FALSE"
Creator = "Text"
DefaultResourceFile = "Text"
Description = "Text"
Hidden = "TRUE" | "FALSE"
Id = "Text"
ImageUrl = "Text"
ImageUrlAltText = "Text"
ReceiverAssembly = "Text"
ReceiverClass = "Text"
RequireResources = "TRUE" | "FALSE"
Scope = "Text"
SolutionId = "Text"
Title = "Text"
Version = "Text" >
</Feature>
屬性
屬性 描述 ActivateOnDefault 可選 Boolean。 如果TRUE 則在安裝過程中或當一個Web應用程序創建時Feature就會被激活;如果是FALSE 則不會激活。該屬性默認值等於 TRUE 。 ActivateOnDefault 屬性不能應用於網站集 (Site) 或網站 (Web) 范圍的Feature。
一般情況下,場范圍的Feature 會在安裝過程中被激活,還有就是當一個新Web應用程序被創建出來時,所有安裝在Web應用程序范圍的 Feature都會激活。
AlwaysForceInstall 可選 Boolean。如果為TRUE 則Feature會強制安裝,即使先前已經安裝過。舉個例子,如果設為 TRUE,任何時候用戶嘗試安裝該Feature(那怕之前安裝過),無論是通過 scanforfeatures 或是 installfeature 命令行操作來安裝,都將啟動安裝過程。該屬性默認等於 FALSE 。 AlwaysForceInstall 屬性會影響所有范圍的Feature。 AutoActivateInCentralAdmin 可選 Boolean。如果為TRUE 則Feature會在管理中心網站,網征集或Web應用程序中默認激活。該屬性默認等於 FALSE 。 AutoActivateInCentralAdmin 屬性不能應用在場范圍的Feature上。 Creator 可選 Text. DefaultResourceFile 可選 Text. 為Feature中的XML資源指定一個公共的資源文件。如果您在文件中指定了一個資源,WSS默認會在\12\TEMPLATES\FEATURES \FeatureName\Resources\Resources.<Culture>.resx中進行查找。然而,您如果想要提供一個共 享的核心資源文件供所有您應用程序的Feature使用,您可以通過DefaultResourceFile來指定一個替換的資源文件。例如,如果您設置 DefaultResourceFile="MyFile", WSS處理您的Feature時會查找 \12\Resources\MyFile.<Culture>.resx 來獲取本地化資源。 Description 可選 String. 用長一些的話來描述該Feature能做什麼。 Hidden 可選 Boolean. 該屬性默認等於 FALSE Id 必需Text. 包含了該Feature的唯一標識 (GUID) ImageUrl 可選 Text. 包含了一個圖片的相對地址,用於在用戶界面(UI)中表示該Feature。 ImageUrlAltText 可選Text. 包含了圖片的替換文字。 ReceiverAssembly 可選Text. 與 ReceiverClass共同配合,來指定GAC中某個DLL組件的強名稱,用於Feature中的事件接收器。 ReceiverClass 可選Text. 與 ReceiverAssembly共同配合,指定Feature中實現事件處理的類。 RequireResources 可選Boolean。如果為 TRUE 則指定WSS通過驗證Feature特定語言的標准“sentinel”資源的存在來檢查Feature資源是不是具備。該資源文件命名滿足格式<Feature Directory>\Resources\Resources.<Culture Name>.resx,其中 <Culture Name> 是語言的標識。WSS支持三種格式的語言名稱,與在與.NET Framework中是一樣的:
XX-XXX
XXX-XX
XX-XXXX-XX
語言名的例子:
en-CA 英語– 加拿大
fr-FR 法語– 法國
ja-JP 日語- 日本
quz-BO 奇楚亞語 – 玻利維亞
uz-Latn-UZ 烏茲別克 (拉丁, 烏茲別克斯坦)
uz-Cyrl-UZ 烏茲別克 (西裡爾, 烏茲別克斯坦)
Internet工程任務組 (IETF) 語言標簽格式為 ll(l)-Ssss-CC, 其中:
ll(l) 表示必需的兩個字母組成的語言標識符(或三位字母,如果該語言名稱在ISO的兩位字母代碼中不存在的話)。
Ssss 表示一個可選的符號標識(script identifier)
CC 表示一個可選的區域標識(region identifier)。
RequireResources 屬性允許您將特定Feature的可見性與指定語言的資源存在性緊密捆綁在一起。
注意:
WSS在對Feature進行特定語言支持的驗證時,不會使用由DefaultResourceFile屬性所指定的文件(如果有這麼一個文件,作為一個備份文件)。
如果對於特定的網站或網站集不存在某語言的文件,將會有兩種方式來應對:
如果對應語言的資源不可用時,該Feature將被從網站或網站集激活Feature的用戶界面中隱藏。
緊記,RequireResources 屬性只能強迫在用戶界面中不顯示。如果通過stsadm.exe命令行操作或對象模型仍是可以將其激活的。
WSS不會將RequireResources的這種強制性用於一個較大的網站定義中的Feature。例如, 您提供了一個泰國版本的網站定義,將一個webtempThai.xml放在了 \12\TEMPLATE\1054\XML下,您必須同時確保其中包含的每個Feature在其文件夾中都能找到所需的資源。
WSS通常會確保如果沒有資源就不在用戶界面上顯示出該Feature的相關信息,但是也存在例外的情況。甚至是在您很仔細的設置了RequireResources,要求只有所有的Feature都有資源的情況下才能部署網站定義,Feature仍會顯示在不具備資源的網站中。
作 為一個示例場景,假設您有一個自定義Feature帶有兩種語言的資源,用來提供自定義工具欄按鈕和網站操作鏈接,並且您已經基於其中一種語言創建了一個 帶根站點的網站集。接下來,在下載並安裝了第三種語言的語言包之後,您基於第三種語言在原來的根站點下創建了一個新的子網站。如果RequireResources 沒有設為TRUE, 該自定義Feature將嘗試回退並使用回退資源(換言之,就是\Resources\Resources.resx中定義的那些,不區分語言)。如果回退資源不存在,WSS將輸出空字符串。然而,如果 RequireResources 設為了 TRUE, 在沒有可用資源的情況下,用戶界面上該Feature的信息(比如通過CustoMaction,ListTemplate,或 FeatureSiteTemplateAssociation元素定義的內容)將不顯示在子網站中,這樣該Feature的那些自定義鏈接和網站操作將 自動隱藏。
該屬性的設置僅僅應用於通過用戶界面的Feature激活,並不包括STSADM.EXE 命令行操作或對象模型。
Scope 必需 Text. 可以包含下列值之一:Farm (場), WebApplication (Web應用程序), Site (網站集), Web (網站). SolutionId 可選Text.指定Featuer 所屬的解決方案。 Title 可選Text. 該Feature的標題,字數限制在 255個字符內。 Version 可選Text. 為Feature指定一個符合 System.Version-形式的版本號。 最多只能有四個由小數點分割的數字,代表了版本。
子元素
ActivationDependencies, ElementManifests, Properties
備注
對於Feature文件夾和文件名,Windows SharePoint Services 僅支持低價的ASCII字符,並且不包括空格。
ActivationDependencies 元素 (Feature)
指定當前feature的激活所依賴的feature的一個清單。
備注
如果當前feature激活所依賴的Feature是隱藏和未激活的,則會自動激活。同時,該隱藏Feature會在最後一個依賴於它的Feature關閉時也被關閉。如果該Feature是可見的,則不會自動激活。一個隱藏Feature不能具有任何激活依賴。
當您將該元素包含到Feature元素中後,下面的示例代碼將確保除非特定ID的Feature被激活,否則不會激活當前的Feature。
<ActivationDependencies>
<ActivationDependency
FeatureId="11111111-1111-1111-1111-111111111111" />
</ActivationDependencies>
ActivationDependency Element (Feature)
代表了一個當前Feature激活依賴的Feature。
<ActivationDependency FeatureId = Guid></ActivationDependency>
屬性 描述 FeatureId 必需Guid. 該依賴性所指向的Feature的ID。
備注
如果當前Feature依賴於另一個更小范圍上的Feature,或者依賴與一個隱藏Feature,那麼此時Windows SharePoint Services 將不支持跨范圍激活依賴性。
ElementManifests 元素(Feature)
包含對用於該Feature的元素清單和元素定義文件的引用。
ElementFile 元素(Feature)
指定該Feature的一個支持文件。
<ElementFile Location = "Text"></ElementFile>
屬性 描述 Location 必需Text. 指定該元素的一個支持文件的文件相對路徑,例如, “controls"searcharea.xml”。
ElementManifest 元素(Feature)
指定一個包含feature元素定義的文件。
<ElementManifest Location = "Text"></ElementManifest>
屬性 描述 Location 必需 Text. 指定根元素清單文件的相對路徑,例如,“controls"searcharea.xml”。
Properties 元素(Feature)
包含了一個Feature屬性的默認值的清單。
Property 元素(Feature)
定義一個Feature屬性的默認值。
<Property Key = "Text" Value = "Text"></Property>
屬性 描述 Key 必需 Text. 返回用於修改的屬性的標識。 Value 必需 Text. 返回該屬性的值。
示例
下面的例子展示了如何用一個Feature.xml文件來指定激活依賴性,特定的字段,和元素定義文件的相關路徑。
XML
<Feature
Id="11111111-1111-1111-1111-11111111111"
Title="Location Services"
Description="This Feature contains lists and parts that let you link location data to your customer lists."
Scope="Web">
<ActivationDependencies>
<ActivationDependency
FeatureId="11111111-1111-1111-1111-111111111111" />
</ActivationDependencies>
<ElementManifests>
<ElementManifest
Location="Location\LocationPart.xml"/>
<ElementManifest
Location="CustomerLocation\CustomerLocationList.xml"/>
<ElementFile
Location="test.aspx"/>
</ElementManifests>
<Properties>
<Property
Key="Color"
Value="Blue"/>
<Property
Key="Shape"
Value="Triangle"/>
</Properties>
</Feature>