`

MOSS点滴(1):如何开发和部署feature

阅读更多

转自:http://www.cnblogs.com/carysun/archive/2008/04/16/feature.html

Features 是MOSS 2007以开箱即用的一套新功能,Features 存储在SharePoint服务器的如下路径下:C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES。每个Featrue在此路径下有自己的子目录,在每一个Feature子目录下会发现名字为Feature.xml的文件,它存储一些关于Featrue的metadata信息。

下面我就利用feature来实现一个小功能,在"网站操作"中添加自定义的菜单,首先使用VS2005建立一个HelloWorld的类库项目,然后添加文件夹Helloworld,在文件夹中添加feature.xml文件代码如下:

<FeatureId="B2CB42E2-4F0A-4380-AABA-1EF9CD526F20"Title="HelloWorldFeature"Description="这是我的第一个Feature"Scope="Web"Hidden="FALSE"ImageUrl="TPG\canteen.gif"ReceiverAssembly="HelloWorld,Version=1.0.0.0,Culture=neutral,PublicKeyToken=b38a04419cc857d9"ReceiverClass="HelloWorld.FeatureReceiver"xmlns="http://schemas.microsoft.com/sharepoint/">

<
ElementManifests>
<ElementManifestLocation="elements.xml"/>
</ElementManifests>

</Feature>

下面我们来说明下包含在Featrue 元素中的metadata 信息。

ID: 一个GUID,用于唯一标识这个Feature,这个可以使用GUID的生成工具得到;

Scope:其值可以是Web或Site,它指明了这个Feature是应用于整个的Site Collection还是仅仅用于单独的一个子站点。如果Scope="Web",则在[网站操作—网站设置—网站管理—网站功能]下激活,如果Scope="Site"则要在[网站操作—网站设置—网站管理—网站集功能]下激活。

Hidden:值可以是True或False.该设置指定了这个Feature是否在Site Feature页面上显示。

DefaultResourceFile: 资源文件名字,Feature依赖它提供其它附加的配置信息。

<ElementManifests>元素:这个元素包含了另一个XML文件的位置,而这个文件包含的<Elemnets>的内容是Feature要实现的。

然后我们在添加elements.xml文件,代码如下:

<Elementsxmlns="http://schemas.microsoft.com/sharepoint/">

<CustomActionId="SiteActionsToolbar"GroupId="SiteActions"Location="Microsoft.SharePoint.StandardMenu"Sequence="100"Title="HelloWorld"Description="使用feature方式自定义菜单"ImageUrl="_layouts/images/crtsite.gif">
<UrlActionUrl="http://msdn.microsoft.com"/>
</CustomAction>

</Elements>

这个就是我们自定义的菜单项了。

在增加一个类文件FeatureReceiver.cs,代码如下:

usingSystem;
usingMicrosoft.SharePoint;

namespaceHelloWorld
{
publicclassFeatureReceiver:SPFeatureReceiver
{
publicoverridevoidFeatureInstalled(SPFeatureReceiverPropertiesproperties){}
publicoverridevoidFeatureUninstalling(SPFeatureReceiverPropertiesproperties){}
publicoverridevoidFeatureActivated(SPFeatureReceiverPropertiesproperties)
{
SPWebsite
=(SPWeb)properties.Feature.Parent;
site.Properties["OriginalTitle"]=site.Title;
site.Properties.Update();
site.Title="HelloWorldModify";
site.Update();
}

publicoverridevoidFeatureDeactivating(SPFeatureReceiverPropertiesproperties)
{
SPWebsite=(SPWeb)properties.Feature.Parent;
site.Title
=site.Properties["OriginalTitle"];
site.Update();
}
}
}

SPFeatureReceiver 类中定义当安装、激活、停用或卸载 Web 部件 Feature 时,MOSS会触发这些事件,在此我们要设置feature.xml中的ReceiverAssembly 和 ReceiverClass 的属性。 这些属性指向一个功能接收器的托管类。PublicKeyToken是HelloWorld的key可以在VS2005命令行下使用"sn -t HelloWorld"来得到。

基本上我们的任务就完成了,现在我们就要开始部署了,需要通过以下步骤

1.将HelloWorl文件夹(其中包含feature.xml和elements.xml文件)拷贝到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES文件夹下。

2.STSADM -o InstallFeature -filename HelloWorld\feature.xml -force

feature1

3.使用"gacutil -if 程序集名"将HelloWorld.dll注册到GAC中

feature3

4.重启IIS:iisreset

现在我们去网站集功能中查看,你可以激活该feature,激活的时候会执行FeatureActivated中的代码

feature2

当然这一部署过程我们可以使用一个批处理来完成,注意路径的更改:

@SETTEMPLATEDIR="c:\programfiles\commonfiles\microsoftshared\webserverextensions\12\Template"
@SETSTSADM
="c:\programfiles\commonfiles\microsoftshared\webserverextensions\12\bin\stsadm"
@SETGACUTIL
="d:\ProgramFiles\MicrosoftVisualStudio8\SDK\v2.0\Bin\gacutil.exe"

EchoInstallingHelloWorld.dllinGAC
%GACUTIL%-ifbin\debug\HelloWorld.dll

EchoCopyingfilestoTEMPLATEdirectory
xcopy/e/yTEMPLATE\*%TEMPLATEDIR%

EchoInstallingfeature
%STSADM%-oinstallfeature-filenameHelloWorld\feature.xml-force

IISRESET
REMcscriptc:\windows\system32\iisapp.vbs/a
"SharePointDefaultAppPool"/r

下面就是我们最终要实现的效果了

feature4

分享到:
评论

相关推荐

    在MOSS中开发和部署Infopath

    在MOSS中开发和部署Infopath 在InfoPath中同时上传多个附件

    moss 2007开发教程(1).MOSS2007之概述

    moss 2007开发教程,moss 2007开发教程(1).MOSS2007之概述

    Moss+自定义Feature

    Moss+自定义Feature Moss+自定义Feature Moss+自定义FeatureMoss+自定义FeatureMoss+自定义FeatureMoss+自定义FeatureMoss+自定义Feature

    MOSS2007实用工具包

    对于MOSS 2007的开发和部署来说,Web部件和事件处理程序的开发并非难事,然而注册和部署却是一件麻烦的事情。 现在你可以通过《MOSS实用工具包》轻松地完成Web部件和事件处理程序的注册和部署。 下面简单介绍...

    MOSS 2007部署文档

    SharePoint 2007部署文档 MOSS部署在SQLSERVER2005参考手册

    moss2010安装部署

    moss2010 部署 欢迎你查看! 谢谢

    moss2007网页组件开发资料

    moss2007网页组件开发资料moss2007网页组件开发资料

    MOSS开发日记,MOSS 2007 开发日记 - 中国网络编辑整理

    很多朋友可能和我一样,需要对MOSS 进行开发,但是感觉又是一头雾水,不知道从何做起。 这里,从开发学习环境的搭建开始,开始我们一步一步学习的过程。 既然是学习,免不了把系统整的乱七八糟。出于方便,我建议...

    MOSS常用部署命令stsadm

    MOSS常用部署命令stsadmMOSS常用部署命令stsadmMOSS常用部署命令stsadmMOSS常用部署命令stsadmMOSS常用部署命令stsadmMOSS常用部署命令stsadmMOSS常用部署命令stsadm

    MOSS+PROJECT SERVER 安装部署

    Microsoft Office SharePoint Server 2007(简称MOSS 2007)可以构建企业门户站点,并实现团队协作、内容管理、工作流、商业智能等强大...MOSS 2007的安装和部署过程与早期的SPS 2003有很多相似之处,但也有一些区别。

    MOSS 2007部署过程完整版 pdf

    MOSS 2007部署过程完整版 pdf

    moss:Moss解释器(实验实现)

    ||苔藓翻译Moss是一种动态编程语言。它的解释器内核是用Rust编写的。从Rust调用Moss代码的示例: use moss :: object :: Object;fn main () { let i = moss :: Interpreter :: new (); i.rte. set ( "a" ,Object :: ...

    moss2007 开发资料

    moss 开发资料 webpart的开发

    moss.py:Moss的Python客户端

    moss.py 的Python客户端:用于检测软件相似性的系统介绍它是客户端的Python接口。 它是为编写的,用于处理Python作业提交中的相似性。 它是使用及其方言。安装pip install mosspy用法 import mosspyuserid = ...

    MOSS2007之WebPart开发

    arepoint Server 2007开发系列课程(3):MOSS2007之WebPart开发.zip

    MOSS2007之开发概述

    Microsoft Office Sharepoint Server 2007开发系列课程 2 :MOSS2007之开发概述

    moss开发常用工具

    这可是做项目的时候,我们用到的啊! 一般情况下,很难下到的

    Moss2007开发入门教程

    从Moss2007的安装配置,到Webpart,Event Handler,Workflow基本开发方法。是学习Moss2007开发入门的一本好电子书。 希望对初学Moss2007开发的朋友有帮助。

    MOSS 2007开发日记

    Moss搜索系列文章:在Microsoft Office Sharepoint Server中开发日记

    利用INFOPATH 2007 + VS2005开发MOSS工作流

    利用INFOPATH 2007 + VS2005开发MOSS工作流(开发篇) 利用INFOPATH 2007 + VS2005开发MOSS工作流(部署篇)

Global site tag (gtag.js) - Google Analytics