MOSS快速部署项目操作详解
想要在MOSS项目中实现快速部署,需要在两个阶段的工作中改进:开发阶段、部署阶段
开发阶段:将各个MOSS部件编写好代码后,加入对应的Feature配置文件,最后打包成一个或几个的WSP安装包。
部署阶段:编写部署批处理文件与卸载批处理文件,用stsadm命令将开发阶段的成果WSP安装包在运行服务器上运行即可。
一、 确认WSPBuilder与VSeWSS的安装
a) 这两个工具为Visual Studio 2008的插件,现有的最新版本为WSPBuilder 1.06、VSeWSS 1.3(Visual Studio 2008 extensions for Windows SharePoint Services 3.0 (version 1.3))
b) 安装成功后在新建项目中下图所示:
二、 新建VS2008解决方案与项目
c) 与正常开发项目一样,在VS2008中新建一个“空白解决方案”
d) 添加新建项目,按MOSS部件分类,我们至少需要建立三个项目:WSPBuilder Project、WSPBuilder Project with Workflow、ASP.NET Web应用程序
e) WSPBuilder Project:MOSS部件中的代码部分基本都可以放在该项目中,包括WebPart、EventHandle、Custom Filed Type及其它Feature
f) WSPBuilder Project with Workflow:MOSS部件中的工作流可以放在该项目中,包括顺序工作流与状态机工作流。
g) ASP.NET Web应用程序:MOSS部件中的Application Page与UserControl可以放在该项目中,而且这类页面程序通常包含业务逻辑代码,所以可以按业务逻辑分类,建立几个项目。
三、 WebPart开发操作步骤
h) 在WSPBuilder Project项目中添加Web Part Feature程序
i) 确认WebPart Feature标题与作用范围
该标题与描述是体现在MOSS网站功能中,如下图所示,而WebPart的标题与描述体现在其.webpart的配置文件中。
作用范围分为Web、Site、Web Application、Farm,我们正常为项目的开发WebPart最好将作用范围缩小,放在Web中即可。而公用的WebPart,如QuickPart、ListManager、DelListManager则可以作用整个Web Application中。
j) 查看生成文件,如下图所示:
生成文件包含两部分,配置文件与代码文件,配置文件在解决方案目录12\TEMPLATE\FEATURES下,有三个文件:feature.xml、Elements.xml、Hello.webpart。
代码文件放在WebPartCode\Hello.cs。
在部署时,配置文件将被拷贝至:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\Hello
代码生成结果文件将被拷贝至:C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin
k) 生成WSP包与在本机部署
在Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。
在部署好WSP安装包,需要对其中的Feature进行激活,可以在网页(网站设置 > 网站功能)上激活或以命令行方式激活:stsadm -o activatefeature -filename QZMCC.WSP_Apply.CodeFeature\feature.xml -url http://wzh
l) 验证是否安装成功
1、 在IIS的Inetpub\wwwroot\wss\VirtualDirectories\80\bin目录下有项目生成的DLL文件
2、 在IIS的Inetpub\wwwroot\wss\VirtualDirectories\80下的Web.config文件加入安全控件说明:
<SafeControl Assembly="QZMCC.WSP_Apply.Code, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2cd7bba0605e0247" Namespace="QZMCC.WSP_Apply.Code" TypeName="*" Safe="True" />
3、 在页面上可以加入WebPart。
四、 WebPart配置文件说明
a) 配置文件主要是Feature的文件,在默认的情况下,一个Feature对应一个WebPart,如果两个WebPart关系比较紧密,我们可以修改配置文件,将多个WebPart放在一个Feature中。
b) feature.xml
<?xml version="1.0" encoding="utf-8"?>
<Feature Id="a3374543-3ad4-491f-9535-e686f36df990"
Title="qzmcc.wspbuilder.myWebPart"
Description="Description for qzmcc.wspbuilder.myWebPart"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
<ElementFile Location="qzmcc.wspbuilder.myWebPart.webpart" />
</ElementManifests>
</Feature>
其中主要的属性有ID:Feature的唯一标识 (GUID) ,由WSPBuilder自动生成。
Title,Description,Scope由开发时可视化界面输入的信息。
ElementManifests下为Feature包含的文件,如果多个WebPart放在一个Feature中,则需要添加对应的.webpart文件。
Sharepoint 开发心得No.4: [转载]Feature.xml文件介绍
源文档 <http://www.cnblogs.com/chenchaospr/archive/2009/02/24/1397335.html>
c) elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="WebPartPopulation" Url="_catalogs/wp" RootWebOnly="TRUE">
<File Url="qzmcc.wspbuilder.myWebPart.webpart" Type="GhostableInLibrary">
<Property Name="Group" Value="MyGroup"></Property>
<Property Name="QuickAddGroups" Value="MyGroup" />
</File>
</Module>
</Elements>
主要是描述对应的.webpart文件以及WebPart的分组和组名。基本可以不用修改。
d) qzmcc.wspbuilder.myWebPart.webpart
<?xml version="1.0" encoding="utf-8" ?>
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="qzmcc.wspbuilder.code.qzmcc.wspbuilder.myWebPart, qzmcc.wspbuilder.code, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5d8b9fe9a7bdba02" />
<importErrorMessage>Cannot import qzmcc.wspbuilder.myWebPart Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title" type="string">qzmcc.wspbuilder.myWebPart</property>
<property name="Description" type="string">Description for qzmcc.wspbuilder.myWebPart</property>
</properties>
</data>
</webPart>
</webParts>
主要是WebPart的注册信息,由WSPBuilder自动生成,还有就是WebPart的标题与描述,手动修改,以后在使用该WebPart时页面选用可查看。
五、 EventHandle开发说明
a) 在WSPBuilder Project项目中添加EventHandle程序
b) 确认EventHandle Feature标题与作用范围
该标题与描述是体现在MOSS网站功能中。
作用范围分为Web、Site、Web Application、Farm,我们正常为项目的开发EventHandle将作用范围缩小,放在Web中即可。
c) 查看生成文件
生成文件包含两部分,配置文件与代码文件,配置文件在解决方案目录12\TEMPLATE\FEATURES\ myEventHandler下,有三个文件:feature.xml、Elements.xml。
代码文件放在FeatureCode \myEventHandler.cs。
在部署时,配置文件将被拷贝至:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\Hello
代码生成结果文件将被部署至GAC中
d) 修改代码文件与配置文件
在代码文件myEventHandle.cs中加入ItemUpdating事件处理程序
public override void ItemUpdating(SPItemEventProperties properties)
{
properties.ErrorMessage = "数据不符合规范!";
properties.Cancel = true;
}
修改配置文件elements.xml
<Receivers ListTemplateId="100">
<Receiver>
<Name>UpdatingEventHandler</Name>
<Type>ItemUpdating</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>qzmcc.wspbuilder.code, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5d8b9fe9a7bdba02</Assembly>
<Class>qzmcc.wspbuilder.code.myEventHandler</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
其Type属性要改成对应的事件,如Adding、Added、Updating、Updated
e) 生成WSP包与在本机部署
在Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。
在部署好WSP安装包,需要对其中的Feature进行激活,以命令行方式激活:
stsadm -o installfeature -filename qzmcc.wspbuilder.myEventHandler\feature.xml
stsadm -o activatefeature -filename qzmcc.wspbuilder.myEventHandler\feature.xml -url http://wzh/Lists/MyList/AllItems.aspx
f) 验证是否安装成功
4、 在GAC的C:\Windows\assembly目录下有项目生成的DLL文件
5、 使用工具OSSEventManager查看是否已关联到列表中。
六、 WebPart配置文件说明
a) 配置文件主要是Feature的文件
b) feature.xml
<?xml version="1.0" encoding="utf-8"?>
<Feature Id="4d953ebc-69d2-4870-8afc-75058fe2f6f0"
Title="qzmcc.wspbuilder.myEventHandler"
Description="Description for qzmcc.wspbuilder.myEventHandler"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
其中主要的属性有ID:Feature的唯一标识 (GUID) ,由WSPBuilder自动生成。
Title,Description,Scope由开发时可视化界面输入的信息。
ElementManifests下为Feature包含的文件。
Sharepoint 开发心得No.4: [转载]Feature.xml文件介绍
源文档 <http://www.cnblogs.com/chenchaospr/archive/2009/02/24/1397335.html>
c) elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="100">
<Receiver>
<Name>UpdatingEventHandler</Name>
<Type>ItemUpdating</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>qzmcc.wspbuilder.code, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5d8b9fe9a7bdba02</Assembly>
<Class>qzmcc.wspbuilder.code.myEventHandler</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements>
主要是描述对应的ListTemplateId与对应的事件类型。
常见的列表类型有:
100 Generic list
101 Document library
106 Events list
107 Tasks list
事件类型与代码中的事件相同。
源文档 <http://www.cnblogs.com/lmkong/archive/2008/09/08/1286836.html>
七、 自定义字段开发说明
a) 在WSPBuilder Project项目中添加Custom Field Type程序
b) 查看生成文件,如下图所示:
生成文件包含三部分,界面模板文件、配置文件与代码文件,界面模板文件文件放在12\TEMPLATE\CONTROLTEMPLATES\下的myCustomFieldTypeFieldEditor.ascx
配置文件在解决方案目录12\TEMPLATE\XML\下的fldtypes_myCustomFieldType.xml
代码文件放在FieldTypeCode \ 下myCustomFieldType.cs、
myCustomFieldTypeControl.cs、myCustomFieldTypeFiledEditor.cs。
由于WSPBuilder自动生成的文件界面与代码文件过于复杂,且不符合一般编写自定义字段的习惯,建议将界面与代码文件模板重新改写。
c) 由于自定义字段代码比较复杂,请有用到自定义字段的高手们自己去研究。
d) 生成WSP包与在本机部署
在Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。
由于自定义字段不需要Feature,所在在部署好WSP安装包后即可使用。
e) 验证是否安装成功
1、 在GAC的C:\Windows\assembly目录下有项目生成的DLL文件
2、 在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\CONTROLTEMPLATES目录下是否有对应的界面模板文件。
3、 在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML目录下是否有对应的配置模板文件。
f) 参考:创建MSS2007自定义字段类型实例
http://www.cnblogs.com/shangmeizhai/archive/2007/03/15/675702.html
八、 自定义字段配置文件说明
a) fldtypes_myCustomFieldType.xml
<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">myCustomFieldType</Field>
<Field Name="ParentType">Text</Field>
<Field Name="TypeDisplayName">myCustomFieldType</Field>
<Field Name="TypeShortDescription">Description for myCustomFieldType</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="Sortable">TRUE</Field>
<Field Name="AllowBaseTypeRendering">TRUE</Field>
<Field Name="Filterable">TRUE</Field>
<Field Name="FieldTypeClass">qzmcc.wspbuilder.code.myCustomFieldType, qzmcc.wspbuilder.code, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5d8b9fe9a7bdba02</Field>
<Field Name="FieldEditorUserControl">/_controltemplates/myCustomFieldTypeFieldEditor.ascx</Field>
<PropertySchema>
<Fields>
<Field Hidden="TRUE" Name="MyCustomProperty"
DisplayName="My Custom Property"
Type="Text">
</Field>
</Fields>
<Fields></Fields>
</PropertySchema>
<RenderPattern Name="DisplayPattern">
<HTML><![CDATA[TODO: define render pattern here]]></HTML>
</RenderPattern>
</FieldType>
</FieldTypes>
九、 Application Page开发说明
a) 初始化目录结构与母版页
使用默认的ASP.NET Web应用程序模板,在项目中需要加入WSPBuilder对应的目录结构用于打包WSP安装包。如下图所示:
_layouts目录用于存入母版页,可使用简单的母版页default.Master
12:部署时对应C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12
80:部署时对应C:\Inetpub\wwwroot\wss\VirtualDirectories\80
TEMPLATE\LAYOUTS:存放Application Page对应的aspx页面,对应于Web的URL地址是_layouts。
80\bin:页面代码生成的DLL文件存放于此
b) 修改项目生成输出路径
将输出路径修改为80/bin,便于将生成的DLL文件直接打包到WSP安装包中。
c) 在LAYOUTS目录下添加Web内容窗体,并选择母版页,如图所示:
d) 查看生成文件,如下图所示:
e) 修改页面与代码文件
与普通ASP.NET的页面一样,如果需要读取SharePoint列表等数据,则需要加入引用Microsoft.SharePoint.dll,并修改继承页,从LayoutsPageBase继承。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace QZMCC.WSP_Apply.WebPage._12.TEMPLATE.LAYOUTS.QZMCC.WSP_Apply.Page
{
public partial class Page1 : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
SPSite siteCollection = this.Site;
SPWeb site = this.Web;
f) 生成WSP包与在本机部署
在Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。
注:由于Application Page使用的母版页是自定义的,也需要拷贝到LAYOUTS目录下,所以在编译后使用copy命令拷贝母版页。如下图所示:copy $(ProjectDir)_layouts\qzmcc_default.Master $(ProjectDir)12\TEMPLATE\LAYOUTS\
g) 验证是否安装成功
i. 在IIS的Inetpub\wwwroot\wss\VirtualDirectories\80\bin目录下有项目生成的DLL文件
ii. 在MOSS的C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS目录下的对应的ASPX文件
iii. 通过IE能访问页面。如:
http://wzh/_layouts/WebForm1.aspx
十、 自定义菜单配置文件说明
a) 自定义菜单为一个Feature,且一般与Application Page的页面链接相关联,所以将它放在ASP.NET网站项目下。
b) 开发时我们可以在WSPBuilder Project项目下新建一个空Feature,再剪切到ASP.NET网站,只要两边保存的目录都是在12\TEMPLATE\FEATURES下
c) Feature.xml
<?xml version="1.0" encoding="utf-8"?>
<Feature Id="d7d46132-8871-4982-842f-e26e9ec89624"
Title="CustomMenu"
Description="Description for CustomMenu"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
其中主要的属性有ID:Feature的唯一标识 (GUID) ,由WSPBuilder自动生成。
Title,Description,Scope由开发时可视化界面输入的信息。
d) elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- 出现在控件的编辑项中-->
<CustomAction Id="Page1"
RegistrationType="List"
RegistrationId="101"
ImageUrl="/_layouts/2052/IMAGES/BULLETS.GIF"
Location="EditControlBlock"
Sequence="241"
Title="此文档库信息" >
<UrlAction Url="~site/_layouts/Page1.aspx?ItemId={ItemId}&ListId={ListId}"/>
</CustomAction>
</Elements>
e) 生成WSP包与在本机部署
在Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。
在部署好WSP安装包,需要对其中的Feature进行激活,可以在网页(网站设置 > 网站功能)上激活或以命令行方式激活:stsadm -o activatefeature -filename CustomMenu\feature.xml -url http://wzh
f) 验证是否安装成功
i. 通过IE能查看对应菜单的修改.
十一、 UserControl开发说明
a) UserControl可以两种方式来安装,一种是直接将ascx文件拷贝至
80\bin\wpresources\目录下,再进行网页编辑模式,在网页上添加QuickPart,最后选择用户控件。
另一种方式是将UserControl包装成一个WebPart,在网页编辑模式时直接选用。
以下我们以第二种方式来说明UserControl的开发。
b) 确认QuickPart的安装,如果在MOSS环境中已安装QuickPart控件,则不需要在代码中配置QuickPart,若没有,则建新一个Featrue来安装QuickPart。
c) 安装QuickPart:
i. 将QuickPart.dll文件添加到80\bin目录下
ii. 添加WebPart Feature,如下图所示:(注,在项目名上添加下行,不能在子目录中添加)
iii. 将WebPart的代码删除,再修改其配置文件。
iv. 将QuickPart.webpart内容修改成即可:
<type name="Microsoft.PRC.SharePoint.ConsumerQuickPart, QuickPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2d0bb71b2dd16f9e" />
v. 其它的安装与普通WebPart一致。
d) 在”80\wpresources\系统名”下添加用户控件
e) 添加新的Blank Feature,将WebPart的配置信息复制进来。
f) 修改对应的elements.xml文件与.webPart文件
g) 在.WebPart文件中加入新的属性<property name="WrappedUserControlPath" type="string">~\wpresources\My.ascx</property>
h) 与其它的WebPart一样部署,但在80\wpresources目录将部署到
c:\inetPub\wwwroot\wss\VirtualDirectories\80\resources目录下,而QuickPart识别不了resources目录,可以手工将resources目录下的文件剪切到wpresources目录下。
i) 验证与测试新建的WebPart。
十二、 UserControl配置文件说明
a) 在QuickPart找不到UserControl时,修改Web.config,将<trust level="WSS_Custom" originUrl="" />的level属性改成“Full”
b) Feature.xml与Elements.xml配置信息请参数(四)的WebPart配置文件。
c) My.WebPart
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.PRC.SharePoint.ConsumerQuickPart, QuickPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2d0bb71b2dd16f9e" />
<importErrorMessage>Cannot import QuickPart Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title" type="string">My Web Part</property>
<property name="Description" type="string">Description for QuickPart</property>
<property name="WrappedUserControlPath" type="string">~\wpresources\My.ascx</property>
</properties>
</data>
</webPart>
</webParts>
<ype name 属性对应QuickPart的编译信息
<property name="WrappedUserControlPath"属性对应UserControl的路径。
十三、 列表迁移操作步骤
a) 列表迁移分为两步操作,第一步生成列表模板,第二步根据模板生成实例。列表模板使用VSeWSS1.3来导出,列表实例使用ImtechListInstanceGenerator来定义。经测试,发现可以将多个列表模板存入同一Feature,同一列表实例也可以存入同一Feature,但不能将模板与实例放在同一Feature中。另外,视图也可以通过模板、实例方式来迁移。
b) 导出列表模板Feature
i. 使用工具:VSeWSS1.3(注意:安装时将Web Service安装列80端口),如图所示:
ii. 打开“开始”->“所有程序”->“Microsoft SharePoint Developer Tools 9.0”->“SharePoint Solution Generator 2008”,进入列表定义,选择开发站点。
iii. 选择导出列表模板
iv. 选择生成的项目名称与保存目录,并下一步自动生成列表模板项目。
v. 使用VS2008打开自动建立项目,生成Package包
c) 使用VS2008打开开发项目,加入列表模板定义。
在TEMPLATE\FEATURES中新建ListDefinition目录,然后在该目录下为每个列表(文档库)新建同名子目录,然后“添加现有项”,将VSeWSS自动生成的列表模板文件加入。
d) 修改ListDefinition下的feature.xml,加入文件定义(内容可以在VSeWSS自动生成的pkg目录下拷贝)。
e) 与其它Feature一样,生成WSP包,部署完成后,安装并激活Feature,在网站操作->创建下即可以看到列表模板。
f) 建立一个Blank Feature,名为ListInstance,用于存放列表实例Feature
g) 使用工具ImtechListInstanceGenerator来自定义列表实例属性,并将生成的XML内容拷贝至element.xml文件中。
h) 与其它Feature一样,生成WSP包,部署完成后,安装并激活Feature,在网站导航栏可以看到新建的列表与文档库。
十四、 列表模板与实例配置文件说明
a) 列表模板定义feature.xml。
<Feature Id="399b6655-6406-4535-8a5e-68893425cabe" Title="wzhList" Scope="Web" Version="1.0.0.0" Hidden="FALSE" DefaultResourceFile="core" xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="wzhList2\ListDefinition.xml" />
<ElementFile Location="wzhList2\schema.xml" />
<ElementFile Location="wzhList2\AllItems.aspx" />
<ElementFile Location="wzhList2\DispForm.aspx" />
<ElementFile Location="wzhList2\EditForm.aspx" />
<ElementFile Location="wzhList2\myView.aspx" />
<ElementFile Location="wzhList2\NewForm.aspx" />
<ElementManifest Location="MyDoc\ListDefinition.xml" />
<ElementFile Location="MyDoc\schema.xml" />
<ElementFile Location="MyDoc\AllItems.aspx" />
<ElementFile Location="MyDoc\Combine.aspx" />
<ElementFile Location="MyDoc\DispForm.aspx" />
<ElementFile Location="MyDoc\EditForm.aspx" />
<ElementFile Location="MyDoc\repair.aspx" />
<ElementFile Location="MyDoc\Upload.aspx" />
<ElementFile Location="MyDoc\WebFldr.aspx" />
</ElementManifests>
</Feature>
b) 列表模板定义schema.xml,由VSeWSS生成,描述字段等信息。
c) 列表模板定义aspx文件,由VSeWSS生成,为操作页面。
d) 列表模板Feature目录结构:总目录ListDefinition,在总目录上保存feature.xml,然后为每个List建立同名子目录,保存其他文件。
e) 列表实例定义feature.xml。
<Feature Id="db371c26-04ac-4b18-8814-3334ab28a08c" Title="newList instance" Scope="Web" Version="1.0.0.0" Hidden="FALSE" DefaultResourceFile="core" xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="instance.xml" />
</ElementManifests>
</Feature>
定义好作用范围即可
f) 列表实例定义instance.xml。内容由工具ImtechListInstanceGenerator来生成。(注,由VSeWSS生成的列表实例Feature经测试,内容过于简单,且对应的featureID属性有误,不能使用)
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<ListInstance
Id="c78c565c-0dd0-40f6-8e93-36cc605c3e6f"
FeatureId="399b6655-6406-4535-8a5e-68893425cabe"
TemplateType="100"
Title="我的列表"
Url="Lists/wdList"
Description="测试中"
OnQuickLaunch="TRUE"
QuickLaunchUrl="我的列表" />
<ListInstance
Id="d7274bcc-c388-4e9b-9843-33756f32a876"
FeatureId="399b6655-6406-4535-8a5e-68893425cabe"
TemplateType="101"
Title="我的文档"
Url="myDoc935"
OnQuickLaunch="TRUE"
QuickLaunchUrl="我的文档" />
<ListInstance
Id="a7274bcc-c388-4e9b-9843-33756f32a876"
FeatureId="399b6655-6406-4535-8a5e-68893425cabe"
TemplateType="101"
Title="我的文档2"
Url="myDoc936"
OnQuickLaunch="TRUE"
QuickLaunchUrl="我的文档2" />
</Elements>
十五、 Designer页面迁移操作说明
a) 现在的Designer页面迁移方案为SharePoint Designer设计页面内容复制到VS2008的同名页面中,并以Feature的Module方式安装到网站数据库。
b) 但此方案存在问题暂时还没有找到解决办法
i. 上传到网站数据库只是页面文件的链接,真正的实体文件还是保留在文件系统上,文件若删除,页面也找不到。
ii. WebPart不存在
iii. 用Designer重新打开上传页面文件,简单修改并保存,可以将文件移入数据库,但会出现中文乱码问题。
iv. 如果上传到页面文件保存到数据库中,则无法以Feature方式再次更新。
v. 上传的aspx页面文件汉字会出现乱码,而上传txt文本文件却无此问题。
vi. 在页面文件中操作列表通常以列表ID为标志,而迁移时列表ID会重新生成。
c) 打开SharePoint Designer2007,打开对应的开发网站
d) 在VS2008的
十六、 部署批处理命令
a) 部署命令分为两部分,第一部分为建网站、上传网站模板、新增SharePoint组、新增组成员。第二部分为WSP解决方案包安装与Feature激活。
b) 批命令环境变量设置,将Stsadm命令路径与Feature目录设置好。
@SET TEMPLATEDIR="d:\program files\common files\microsoft shared\web server extensions\12\Template\Features"
@SET STSADM="d:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm"
@SET GACUTIL="d:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe"
@SET WEBSITE=http://wzh
@SET WEBPATH=http://wzh/test
c) @REM 新建网站
%STSADM% -o createsite -url %WEBSITE% -owneremail 13559406860@139.com -ownerlogin wzh\pangzhi39 -sitetemplate my教育培训模板 -title my教育培训
d) @REM 上传网站模板
%STSADM% -o addtemplate -filename qzmcc_education.stp -title my教育培训模板 -description my教育培训模板测试
e) @REM 新建子站点
%STSADM% -o createweb -url %WEBPATH% -sitetemplate my教育培训模板 -title my教育培训
f) @REM 新建SHARPOINT组(角色)
%STSADM% -o creategroup -url %WEBSITE% -name 教育培训一级管理员 -description 教育培训一级管理员 -ownerlogin SHAREPOINT\system -type member
%STSADM% -o creategroup -url %WEBSITE% -name 教育培训二级管理员 -description 教育培训一级管理员 -ownerlogin SHAREPOINT\system -type member
%STSADM% -o creategroup -url %WEBSITE% -name 教育培训普通员工 -description 教育培训一级管理员 -ownerlogin SHAREPOINT\system -type member
g) @REM 新增SharePoint组人员
%STSADM% -o adduser -url %WEBSITE% -userlogin wzh\pangzhi39 -useremail spv@263.net -group 教育培训一级管理员 -username 吴招辉
h) REM 安装solution
stsadm -o addsolution -filename Deploy.wsp
i) REM 部署solution
stsadm -o deploysolution -name Deploy.wsp -immediate -allowgacdeployment -allowCasPolicies -url http://wzh
j) REM 安装feature
stsadm -o installfeature -filename ListDefine\feature.xml
k) REM 激活Feature
stsadm -o activatefeature -filename ListDefine\feature.xml -url http://wzh -force
l) REM 安装事件处理程序Feature
stsadm -o activatefeature -filename EventHandler1\feature.xml -url http://wzh/Lists/MyList/AllItems.aspx
m) 将定时任务立马执行
stsadm -o execadmsvcjobs
十七、 卸载批处理命令
a) @REM 删除子站点
%STSADM% -o deleteweb -url %WEBPATH%
b) @REM 删除网站模板
%STSADM% -o deletetemplate -title my教育培训模板
c) @REM 删除SHARPOINT组(角色)
%STSADM% -o deletegroup -url %WEBSITE% -name 教育培训一级管理员
%STSADM% -o deletegroup -url %WEBSITE% -name 教育培训二级管理员
%STSADM% -o deletegroup -url %WEBSITE% -name 教育培训普通员工
d) @REM 删除SharePoint组人员
%STSADM% -o deleteuser -url %WEBSITE% -userlogin wzh\pangzhi39
e) REM 停止Feature
stsadm -o deactivatefeature -filename ListDefine\feature.xml -url http://wzh
f) REM 卸载feature
stsadm -o uninstallfeature -filename ListDefine\feature.xml
g) REM 收回solution
stsadm -o retractsolution -name Deploy.wsp -immediate -url http://wzh
h) 删除solution
stsadm -o deletesolution -name Deploy.wsp
浙公网安备 33010602011771号