使用Feature导入WebPart
自动化导入web part 的解决方案
1.问题的提出
在我们安装完web part 之后,往往要通过手动的方式将web part 导入到SharePoint 库当中,这样的做法不是最终客户所需要的,所以我们需要使用一种自动化的导入web part 的方法。着这篇报告中我将使用一个Feature 将一个或多个web part 自动导入到SharePoint 中。
2.前期工作
之前我们需要按常规方法使用vs 2008 写一个web part 。并给这个web part 做强签名。然后编译成一个dll. 之后使用gacutil 命令将其导入GAC中。 接着,在虚拟目录文件夹下的web.config(C:/Inetpub/wwwroot/wss/VirtualDirectories/9003/)文件的 里加入程序集:
过程如下:
Step1. 新建一个叫做 MyWebParts的 类库工程,并且添加入Microsoft.SharePoint 引用。新建一个叫做MyFirstWebPart的cs文件:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace MyWebParts{
public class MyFirstWebPart : WebPart
{
protected override void CreateChildControls()
{
Label label = new Label();
label.Text = "I am a label";
base.CreateChildControls();
this.Controls.Add(new LiteralControl("Hello, world4!"));
this.Controls.Add(label);
}
}
}
Step2. 做强签名。然后Build 项目。
Step3. 使用gacutil /i MyWebParts.dll 将 MyWebParts.dll 加入GAC中。
Step4.在web.config 文件的 标签下加入
PublicKeyToken可以在GAC中得到。
Step5. iisreset 重启iis
Step6. 打开SharePoint的根网站点击Actions 进入Site Settings ,再点击Web Parts,然后再点击New 你会看到:
将MyWebParts.MyFirstWebPart加入到web part库中,这样的目的是为了从库里导出webpart文件。
Step7. 回到web part 库页面点击导出webpart文件。
准备工作结束!
3. 编写自动化导入Feature
进入SharePoint的经典12目录下(C:/Program Files/Common Files/Microsoft Shared/web server extensions/12 )的Template 目录,新建一个叫DWP的文件夹,然后在该文件夹下创建feature.xml文件,在这个文件里填入:
<Feature Id="6A05D54D-A7A3-48d2-BD6E-6EB25DB00943" Title="A demo feature to deploy My First Web Parts" Description="Demo to import webpart" Hidden="FALSE" Scope="Site" ImageUrl="" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="elements.xml"/> </ElementManifests> </Feature>
注意:Id号最好自己用guidgen自动生成。
在同个目录下再创建一个elements.xml的文件在里面填入:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="MyFirstWebPart" Path="." List="113" Url="_catalogs/wp" RootWebOnly="true"> <File Url="MyFirstWebPart.webpart" Type="GhostableInLibrary" > <Property Name="Group" Value="MyFirstWebParts" /> </File> </Module> </Elements>
接着把刚才的MyFirstWebPart.webpart 文件拷贝到该目录下,最后编写自动安装的importWP.bat文件:
@SET STSADM="c:/program files/common files/microsoft shared/web server extensions/12/bin/stsadm"
Echo Installing feature
%STSADM% -o InstallFeature -filename DWP/feature.xml -force
Echo Activating feature
%STSADM% -o activatefeature -filename DWP/feature.xml -url http://yourSPwebSite /
Iisrest
最后的文件夹应该是这样的:
然后双击这个bat文件夹,一切搞掂。当要部署到其他服务器上的时候,按常规安装完webpart之后,点击运行这个文件,webpart就会自动安装到webpart库和group里面。