[转]Sharepoint自定义Feature-----Feature.xml结构

摘自:http://alinw.blog.hexun.com/37240796_d.html

1.Feature.xml的结构

<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>

(1)ActivateOnDefault :可选 Boolean 如果TRUE 则在安装过程中或当一个Web应用程序创建时Feature就会被激活;如果是FALSE 则不会激活。该属性默认值等于 TRUE ActivateOnDefault 属性不能应用于网站集 (Site) 或网站 (Web) 范围的Feature一般情况下,场范围的Feature 会在安装过程中被激活,还有就是当一个新Web应用程序被创建出来时,所有安装在Web应用程序范围的 Feature都会激活。

 

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

 

(3)AutoActivateInCentralAdmin :可选 Boolean。如果为TRUE 则Feature会在管理中心网站,网征集或Web应用程序中默认激活。该属性默认等于 FALSE AutoActivateInCentralAdmin 属性不能应用在场范围的Feature上。

 

(4)Creator :可选 Text.

 

(5)DefaultResourceFile :可选 Text. 为Feature中的XML资源指定一个公共的资源文件。如果您在文件中指定了一个资源,WSS默认会在\12\TEMPLATES\FEATURES \FeatureName\Resources\Resources.<Culture>.resx中进行查找。然而,您如果想要提供一个共 享的核心资源文件供所有您应用程序的Feature使用,您可以通过DefaultResourceFile来指定一个替换的资源文件。例如,如果您设置 DefaultResourceFile="MyFile" WSS处理您的Feature时会查找 \12\Resources\TestFile.<Culture>.resx 来获取本地化资源。

 

(6)Description :可选 String. 用一些描述语言来描述该Feature能做什么。

 

(7)Id :必需Text. 包含了该Feature的唯一标识 (GUID)

 

(8)ImageUrl :可选 Text. 包含了一个图片的相对地址,用于在用户界面(UI)中表示该Feature

 

(9)Hidden :可选 Boolean. 该属性默认等于 FALSE

 

(10)ImageUrlAltText :可选Text. 包含了图片的替换文字。

 

(11)ReceiverAssembly :可选Text. ReceiverClass共同配合,来指定GAC中某个DLL组件的强名称,用于Feature中的事件接收器

 

(12)ReceiverClass :可选Text. ReceiverAssembly共同配合,指定Feature中实现事件处理的类

(13)Scope :必需 Text. 可以包含下列值之一:Farm (), WebApplication (Web应用程序), Site (网站集), Web (网站).

(13)SolutionId :可选Text.指定Featuer 所属的解决方案。

(13)Title :可选Text. 该Feature的标题,字数限制在 255个字符内。

(13)Version :可选Text. 为Feature指定一个符合 System.Version-形式的版本号。 最多只能有四个由小数点分割的数字,代表了版本。

(14)RequireResources :可选Boolean。如果为 TRUE 则指定WSS通过验证Feature特定语言的标准“sentinel”资源的存在来检查Feature资源是不是具备。

2.Feature.xml的元素

(1)<ActivationDependencies>
     <ActivationDependency>

(2)<ElementManifests>
      <ElementFile>
      <ElementManifest>

(3)<Properties>

      <Property>

 (1)ActivationDependencies 元素 (Feature)
指定当前feature的激活所依赖的feature的一个清单。
备注
如果当前feature激活所依赖的Feature是隐藏和未激活的,则会自动激活。
同时,该隐藏Feature会在最后一个依赖于它的Feature关闭时也被关闭。如果该Feature是可见的,则不会自动激活。
一个隐藏Feature不能具有任何激活依赖。
<ActivationDependencies>
<ActivationDependency
FeatureId="00000000-0000-0000-0000-0000000000000" />
</ActivationDependencies>
ActivationDependency Element (Feature)
代表了一个当前Feature激活依赖的Feature。
(2)ElementManifests 元素(Feature)
包含对用于该Feature的元素清单和元素定义文件的引用。
ElementFile 元素(Feature)
指定该Feature的一个支持文件。
<ElementFile Location = "Text"></ElementFile>
Location:必需Text. 指定该元素的一个支持文件的文件相对路径,例如, “test\test.xml”。
(3)Properties 元素(Feature)
包含了一个Feature属性的默认值的清单。Property 元素(Feature) ,定义一个Feature属性的默认值。
<Property Key = "Text" Value = "Text"></Property>
Key :必需 Text. 返回用于修改的属性的标识。
Value :必需 Text. 返回该属性的值。

 注意:该资源文件命名满足格式<Feature Directory>\Resources\Resources.<Culture Name>.resx,其中 <Culture Name> 是语言的标识。WSS支持三种格式的语言名称,与在与.NET Framework中是一样的:
XX-XXX;XXX-XX;XX-XXXX-XX ja-JP 日语- 日本;uz-Latn-UZ 乌兹别克 (拉丁, 乌兹别克斯坦) ;Internet工程任务组 (IETF) 语言标签格式为 ll(l)-Ssss-CC, 其中:
 ll(l) 表示必需的两个字母组成的语言标识符(或三位字母,如果该语言名称在ISO的两位字母代码中不存在的话)。
 Ssss 表示一个可选的符号标识(script identifier)
 CC 表示一个可选的区域标识(region identifier)。
RequireResources 属性允许您将特定Feature的可见性与指定语言的资源存在性紧密捆绑在一起。WSS在对Feature进行特定语言支持的验证时,
不会使用由DefaultResourceFile属性所指定的文件(如果有这么一个文件,作为一个备份文件)。
如果对于特定的网站或网站集不存在某语言的文件,将会有两种方式来进行匹配:
(1)如果对应语言的资源不可用时,该Feature将被从网站或网站集激活Feature的用户界面中隐藏。
紧记,RequireResources 属性只能强迫在用户界面中不显示。如果通过stsadm.exe命令行操作或对象模型仍是可以将其激活的。
WSS不会将RequireResources的这种强制性用于一个较大的网站定义中的Feature。例如, 您提供了一个泰国版本的网站定义,
将一个webtempTest.xml放在了 \12\TEMPLATE\1054\XML下,您必须同时确保其中包含的每个Feature在其文件夹中都能找到所需的资源。
(2)WSS通常会确保如果没有资源就不在用户界面上显示出该Feature的相关信息,但是也存在例外的情况。甚至是在您很仔细的设置了RequireResources,
要求只有所有的Feature都有资源的情况下才能部署网站定义,Feature仍会显示在不具备资源的网站中。
作为一个示例场景,假设您有一个自定义Feature带有两种语言的资源,用来提供自定义工具栏按钮和网站操作链接,并且您已经基于其中一种语言创建了一个 带根站点的网站集。
接下来,在下载并安装了第三种语言的语言包之后,您基于第三种语言在原来的根站点下创建了一个新的子网站。如果RequireResources 没有设为TRUE,
该自定义Feature将尝试回退并使用回退资源(换言之,就是\Resources\Resources.resx中定义的那些,不区分语言)。
如果回退资源不存在,WSS将输出空字符串。然而,如果RequireResources 设为了 TRUE, 在没有可用资源的情况下,用户界面上该Feature的信息
(比如通过CustomAction,ListTemplate,或 FeatureSiteTemplateAssociation元素定义的内容)将不显示在子网站中,这样该Feature的那些自定义链接和网站操作将 自动隐藏。
该属性的设置仅仅应用于通过用户界面的Feature激活,并不包括STSADM.EXE 命令行操作或对象模型。

posted @ 2009-10-27 11:16  边缘凉风  阅读(307)  评论(0编辑  收藏  举报