Call me Razor#

我每天重新打造一条秘密小路, 在蜿蜒奇诡的归途中尽情冒险.
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Sharepoint 开发心得No.4: [转载]Feature.xml文件介绍

Posted on 2009-02-24 16:24  Razor#  阅读(1246)  评论(1编辑  收藏  举报
源文出自:http://www.cnblogs.com/sunmoonfire/archive/2008/07/29/1240973.html

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 则不会激活。该属性默认值等于 TRUEActivateOnDefault 属性不能应用于网站集 (Site) 或网站 (Web) 范围的Feature。

一般情况下,场范围的Feature 会在安装过程中被激活,还有就是当一个新Web应用程序被创建出来时,所有安装在Web应用程序范围的 Feature都会激活。

AlwaysForceInstall

可选 Boolean。如果为TRUE 则Feature会强制安装,即使先前已经安装过。举个例子,如果设为 TRUE,任何时候用户尝试安装该Feature(那怕之前安装过),无论是通过 scanforfeatures 或是 installfeature 命令行操作来安装,都将启动安装过程。该属性默认等于 FALSEAlwaysForceInstall 属性会影响所有范围的Feature。

AutoActivateInCentralAdmin

可选 Boolean。如果为TRUE 则Feature会在管理中心网站,网征集或Web应用程序中默认激活。该属性默认等于 FALSEAutoActivateInCentralAdmin 属性不能应用在场范围的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>