转:http://soft.zdnet.com.cn/software_zone/2007/0903/488083.shtml

在基于SharePoint的开发中,我们通常会在WSS的TEMPLATE目录中部署一些自定义代码文件。对于这种需求,我们可以通过创建一个Microsoft Visual Studio项目,模仿TEMPLATE目录的结构。
        在基于SharePoint的开发中,我们通常会在WSS的TEMPLATE目录中部署一些自定义代码文件。对于这种需求,我们可以通过创建一个Microsoft
Visual Studio项目,模仿TEMPLATE目录的结构。这样,就可以想办法自动化我们的部署过程。这无疑会对我们的部署和测试有很大帮助。

我们需要创建一个类库(Class Library DLL)类型的项目。然后,在项目中创建一个TEMPLATE目录。如果我们创建了一个或多个功能(Feature),那么就在TEMPLATE目录下创建一个FEATURES目录,将Feature文件都放在此目录下。如果我们创建了自定义后台应用程序页面,那么就在TEMPLATE目录下创建一个LAYOUTS目录。在LAYOUTS目录下,创建一个公司特定或项目特定的目录,然后将我们的自定义应用程序页面创建在该目录下面。

图1、我们创建Visual Studio项目,目录结构模仿WSSTEMPLATE目录

部署

创建完我们的组件如Feature或应用程序页面后,我们可以创建一个批处理文件来自动将这些文件拷贝到TEMPLATE目录。如果我们好测试一个Feature,还可以在批处理文件中增加一个到STSADM.EXE命令行工具的调用,来安装(或激活)该Feature。如果我们的自定义解决方案中包括一个DLL组件需要部署到GAC(global
assembly cache)中,还可以在批处理文件中运行GACUTIL.EXE命令行工具。下面是一个批处理文件的例子。其中包括了上面所说的几个内容,基本包括了我们在做部署和测试时会遇到的种种情况。

@SET TEMPLATEDIR="c:program filescommon filesmicrosoft shared

Template"

@SET STSADM="c:program filescommon filesmicrosoft shared

binstsadm"

@SET GACUTIL="c:Program FilesMicrosoft Visual Studio 8SDKv2.0

              Bingacutil.exe"



Echo Installing HelloWssDev.dll in GAC

%GACUTIL% -if bindebugHelloWssDev.dll



Echo Copying files to TEMPLATE directory

xcopy /e /y TEMPLATE* %TEMPLATEDIR%



Echo Installing feature

%STSADM% -o installfeature -filename  HelloWssDevfeature.xml -force



REM - Uncomment next line when you need to restart IIS worker process

REM IISRESET

请注意,在上面的批处理文件顶部的三个文件路径,包括了换行。这是为了在这里更加易于阅读。可是在正式的实际使用的install.bat文件中,必须将其中的换行除去,以保证批处理能够工作。



编译后自动部署



接下来我们可以给Visual Studio项目添加一个post-build事件,实现在编译(build)后自动执行install.bat。这里要注意必须将当前路径变为当前项目所在目录,以保证可以访问install.bat文件。我们可以像如下这样来写这个post-build。

cd $(ProjectDir)

install.bat

开发基于SharePoint产品和技术的自定义解决方案为我们提供了一种可以扩展WSS或MOSS的强大方式。当我们通过Visual
Studio
项目来创建这些组件时,我们需要具有一个结构清晰的步骤来进行测试和跟踪调试。通常我们的项目会包括一个或多个下面类型的组件

  • 功能(Feature)文件
  • 站点定义(Site definition)文件
  • 后台应用程序页面
  • 页面模板
  • WebPart描述文件
  • 需要部署到GAC或bin目录的DLL组件

当我们创建一个Visual Studio项目来自动copy这些文件到合适的地方并安装好Feature和DLL,我们就可以更快的开展测试并调试程序了。

创建用于自定义SharePoint解决方案部署的Visual Studio项目的更多相关文章

  1. Visual Studio 项目模板制作(一)

    我们编写项目的时候,很多时候都是在写重复代码,比如一个比较完整的框架,然后下面有很多代码都是重复的Copy,其实我们可以利用Visual Studio的模板替我们干这些活,我们只要关注项目具体的业务就 ...

  2. 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败

    背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...

  3. 使用GitHub For Windows托管Visual Studio项目

    本文写得比较早,更新的在VS上使用GitHub的文章请移步:Visual Stuido 2015 Community 使用 GitHub 插件 因为最近同时再看很多技术方面的书,书上的例子有很多自己想 ...

  4. [Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code

    [Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code 问题情景 开发Cordova Plugin的时候,开发的流程应该是: 建立Cordova Plug ...

  5. Visual Studio 项目目录下的bin目录和 obj目录

    一.Bin目录 Visual Studio 编译时,在bin 目录下有debug 和 release 目录. 1.Debug: 通常称为调试版本,它包含调试信息,所以要比Release 版本大很多(可 ...

  6. visual studio项目多级引用不拷贝dll的问题

    最近碰到一个visual studio项目多级引用不拷贝dll的问题,花了很久查了很多资料,特此记录 A项目引用B项目, B项目引用C项目,C项目引用ef及oracle.ef using Oracle ...

  7. visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)

    情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...

  8. SharePoint 2013 工作流之Visual Studio开发示例篇

    SharePoint 2013引用了WF4.0 Foundation,支持使用Designer和Visio进行设计,但是功能受限,而Visual Studio可以开发功能更加丰富的工作流,下面我们简单 ...

  9. SharePoint 2010中使用Visual Studio 2010进行方便快速的Web Part开发

    转:http://www.cnblogs.com/fatwhale/archive/2010/02/24/1672633.html 在Visual Studio 2010中,  已经集成了用于Shar ...

随机推荐

  1. CAS Server 单点登录开源项目

    https://www.apereo.org/cas/download This project contains code that can extent an existing ASP.NET w ...

  2. ios专题 -KVO , KVC

    KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知. addObserver:  forKeyPath: options: conte ...

  3. 04_XML_02_XML语法

    [XML组成] 一个XMl文件分为以下几部分组成 * 文档说明 * 元素 * 属性 * CDATA区.特殊字符 * 处理指令(processing Instruction) [1.文档说明] * 最简 ...

  4. Codeforces Round #299 (Div. 1)

    Problem A: 实际上对于一段数字假设和为k,每次取较大的m个进行t次减一操作,最多减去的是min(m*t,k). 明白了这个结论就可以直接二分答案了. #include <bits/st ...

  5. ASP.NET中的特殊路径标识"~"

    / 表示网站根目录(从域名开始), ../ 表示上级目录, ./表示当前目录- 是ASP.NET定义的特殊符号,是ASP.NET内部进行定义推荐的用法,-代表从应用根目录开始定义应用根目录与网站根目录 ...

  6. 使用SqlBulkCopy批量插入多条数据进入表中

    由于工作中项目需求结算一次生成一批相同批次号的数据插入一个表中,然后再通过另一页面展示出来,所以需要用到一次性插入一批数据,所以就采用了SqlBulkCopy插入一批数据 1 public stati ...

  7. 思维导图软件VYM

    http://www.insilmaril.de/vym/ 点击打开链接http://www.oschina.net/p/vym 有人说VYM就跟目录是一回事,确实是这样, 只不过与excel之类的比 ...

  8. 《JavaScript高级程序设计》笔记(2):位操作符

    1.按位非(NOT) 2.按位与(AND) 3.按位或(OR) 4.按位异或(XOR) 5.左移 6.有符号右移 7.无符号右移 ----------------------------------- ...

  9. 做个无边框winform窗体,并美化界面

    今天下午程序写完,有些时间就搞下界面美化,做个无框窗体.首先把窗体的FormBorderStyle设置为None,就变成无框的啦,不过你会发现这样窗体上就没有原来的最大最小化和关闭按钮了哦,所以要自己 ...

  10. yii2源码学习笔记(十一)

    Controller控制器类,是所有控制器的基类,用于调用模型和布局. <?php /** * @link http://www.yiiframework.com/ * @copyright C ...