转: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. 如何使用SC命令添加删除服务

    1.如何删除服务 cmd然后再输入 sc delete "服务名称" 后,回车,双引号必须为英文符号. 2.添加服务 sc create ServiceName binPath= ...

  2. Ext.Net学习笔记09:Ext.Net Store的用法

    使用Handler处理分页 首先来创建一般处理程序,我命名为StoreHandler.ashx,然后它的处理过程代码如下: public void ProcessRequest(HttpContext ...

  3. Spring in action笔记

    耦合的两面性     一方面代码耦合难以测试,会出现打地鼠式的bug特性(修复一个bug,引发另一个bug) 另一方面耦合又是必须的,不同的类必须要进行适当的交互,才能实现功能. bean的四种装配方 ...

  4. leetcode problem 6 ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  5. dom 笔记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. yii2源码学习笔记(十)

    继续了解Application. /** * Registers the errorHandler component as a PHP error handler. * 注册errorHandler ...

  7. php发送http请求

    http请求有get,post. php发送http请求有三种方式[我所知道的有三种,有其他的告诉我]. file_get_contents();详情见:http://www.cnblogs.com/ ...

  8. C++ 11 笔记 (四) : std::bind

    std::bind 接受一个可调用的对象,一般就是函数呗.. 还是先上代码: void func(int x, int y, int z) { std::cout << "hel ...

  9. chmod 命令 set uid ,set gid,sticky bit 说明

    permission的符号模式表: 模式 名字 说明 r 读 设置为可读权限 w 写 设置为可写权限 x 执行权限 设置为可执行权限 X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行 ...

  10. 如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

    JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具.这些可以参考 JAVA自带监控工 ...