sharepoint create my first feature 2010.4.19
1.上一篇日志中记录了一个feature中包含了一些文件,而这些文件最终部署在wss的文件目录中,路径是:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES
2.在vs2008新建一个class library project去生成这个工程。
3.为了部署方便,在这个project中应建立和wss路径相似的目录结构。建立目录结构TEMPLATE\FEATURES\工程名,这个目录下建立feature.xml和element.xml
3.<Feature Id="" Title="Hello World Feature" Description="This is my very first custom feature" Scope="Web" Hidden="FALSE" ImageUrl="menuprofile.gif"
ReceiverAssembly="HelloWorld, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=b59ad8f489c4a334"
ReceiverClass="HelloWorld.FeatureReciever"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
Title:active feature时的名字,Description:active feature时的描述,
Scope:feature部署的lever,WEB代表部署到每个site,
hidden:若为TRUE,则该feature不能从UI上激活,即不暴漏给用户,只能用命令行或者在其他feature激活时通过代码激活,FALSE即可以让用户来操作。
ReceiverAssembly,ReceiverClass:如果在active feature或deactive feature时添加event,可以使用该属性引用定义该event的类,PublicKeyToken见strong name
程序运行时会在GAC和该网站站点下_app_bin这两个地方查找该程序集。
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
这个节点指该feature中真正的内容
4.strong name:
对于一个程序集,如果要部署到GAC中,需要有个strong name,使用方法如下:
(1).打开SDK Command Prompt或者VS2005中的Visual Studio 2005 Command Prompt.而不是windows的cmd
(2).输入sn -k 文件名.snk,得到的文件在命令提示符的当前文件夹下(微软叫文件夹很少叫目录,最正点是folder)
(3).输入sn -p 文件名.snk 文件名Public.snk
(4).输入sn -t 文件名Public.snk 得到public key token,该token就是feature中引用程序集的PublicKeyToken的值。
(5)在SDK Command Prompt或者Visual Studio 2005 Command Prompt的目录下会生成两个文件 ,文件名.snk和文件名Public.snk,第二个没用。在vs工程中右键->propertis->signing->sign the assembly->browse,选择文件文件名.snk,保存编译。
(6)把生成的dll手工拷贝到GAC中或者目标网站下的_app_bin目录下,在windows命令行中输入assembly就直接打开了GAC文件夹,在windows命令行中输入inetmgr就打开了网站的虚拟目录。