MOSS快速部署项目操作详解

想要在MOSS项目中实现快速部署,需要在两个阶段的工作中改进:开发阶段、部署阶段

 

开发阶段:将各个MOSS部件编写好代码后,加入对应的Feature配置文件,最后打包成一个或几个的WSP安装包。

 

部署阶段:编写部署批处理文件与卸载批处理文件,用stsadm命令将开发阶段的成果WSP安装包在运行服务器上运行即可。

 

一、           确认WSPBuilderVSeWSS的安装

a)         这两个工具为Visual Studio 2008的插件,现有的最新版本为WSPBuilder 1.06VSeWSS 1.3(Visual Studio 2008 extensions for Windows SharePoint Services 3.0 (version 1.3))

b)         安装成功后在新建项目中下图所示:

 

二、           新建VS2008解决方案与项目

c)         与正常开发项目一样,在VS2008中新建一个“空白解决方案”

d)         添加新建项目,按MOSS部件分类,我们至少需要建立三个项目:WSPBuilder ProjectWSPBuilder Project with WorkflowASP.NET Web应用程序

e)         WSPBuilder ProjectMOSS部件中的代码部分基本都可以放在该项目中,包括WebPartEventHandleCustom Filed Type及其它Feature

f)          WSPBuilder Project with WorkflowMOSS部件中的工作流可以放在该项目中,包括顺序工作流与状态机工作流。

g)         ASP.NET Web应用程序:MOSS部件中的Application PageUserControl可以放在该项目中,而且这类页面程序通常包含业务逻辑代码,所以可以按业务逻辑分类,建立几个项目。

 

三、           WebPart开发操作步骤

h)         WSPBuilder Project项目中添加Web Part Feature程序

i)           确认WebPart Feature标题与作用范围

该标题与描述是体现在MOSS网站功能中,如下图所示,而WebPart的标题与描述体现在其.webpart的配置文件中。

作用范围分为WebSiteWeb ApplicationFarm,我们正常为项目的开发WebPart最好将作用范围缩小,放在Web中即可。而公用的WebPart,如QuickPartListManagerDelListManager则可以作用整个Web Application中。

j)           查看生成文件,如下图所示:

生成文件包含两部分,配置文件与代码文件,配置文件在解决方案目录12\TEMPLATE\FEATURES下,有三个文件:feature.xmlElements.xmlHello.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、  IISInetpub\wwwroot\wss\VirtualDirectories\80\bin目录下有项目生成的DLL文件

2、  IISInetpub\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>

        其中主要的属性有IDFeature唯一标识 (GUID) ,由WSPBuilder自动生成。

TitleDescriptionScope由开发时可视化界面输入的信息。

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网站功能中。

作用范围分为WebSiteWeb ApplicationFarm,我们正常为项目的开发EventHandle将作用范围缩小,放在Web中即可。

 

c)         查看生成文件

生成文件包含两部分,配置文件与代码文件,配置文件在解决方案目录12\TEMPLATE\FEATURES\ myEventHandler下,有三个文件:feature.xmlElements.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属性要改成对应的事件,如AddingAddedUpdatingUpdated

 

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、  GACC:\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>

        其中主要的属性有IDFeature唯一标识 (GUID) ,由WSPBuilder自动生成。

TitleDescriptionScope由开发时可视化界面输入的信息。

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

事件类型与代码中的事件相同。

 

d)   WSS3.0中最简单的事件操作和部署

源文档 <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.csmyCustomFieldTypeFiledEditor.cs

 

由于WSPBuilder自动生成的文件界面与代码文件过于复杂,且不符合一般编写自定义字段的习惯,建议将界面与代码文件模板重新改写。

 

c)         由于自定义字段代码比较复杂,请有用到自定义字段的高手们自己去研究。

 

d)         生成WSP包与在本机部署

Builder WSP命令之后,在解决方案文件夹中生成对应的.WSP文件,即可以服务器上用于部署。如果在本机上调试,直接运行命令Deoply即可。

由于自定义字段不需要Feature,所在在部署好WSP安装包后即可使用。

 

e)         验证是否安装成功

1、  GACC:\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页面,对应于WebURL地址是_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.              IISInetpub\wwwroot\wss\VirtualDirectories\80\bin目录下有项目生成的DLL文件

                       ii.              MOSSC:\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>

        其中主要的属性有IDFeature唯一标识 (GUID) ,由WSPBuilder自动生成。

TitleDescriptionScope由开发时可视化界面输入的信息。

 

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}&amp;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.xmlElements.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的同名页面中,并以FeatureModule方式安装到网站数据库。

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

posted on 2011-07-27 15:03  BRUC  阅读(958)  评论(1)    收藏  举报

导航