创建用于自定义SharePoint解决方案部署的Visual Studio项目
转:http://soft.zdnet.com.cn/software_zone/2007/0903/488083.shtml
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命令行工具。下面是一个批处理文件的例子。其中包括了上面所说的几个内容,基本包括了我们在做部署和测试时会遇到的种种情况。
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。
install.bat
开发基于SharePoint产品和技术的自定义解决方案为我们提供了一种可以扩展WSS或MOSS的强大方式。当我们通过Visual
Studio项目来创建这些组件时,我们需要具有一个结构清晰的步骤来进行测试和跟踪调试。通常我们的项目会包括一个或多个下面类型的组件
- 功能(Feature)文件
- 站点定义(Site definition)文件
- 后台应用程序页面
- 页面模板
- WebPart描述文件
- 需要部署到GAC或bin目录的DLL组件
当我们创建一个Visual Studio项目来自动copy这些文件到合适的地方并安装好Feature和DLL,我们就可以更快的开展测试并调试程序了。
创建用于自定义SharePoint解决方案部署的Visual Studio项目的更多相关文章
- Visual Studio 项目模板制作(一)
我们编写项目的时候,很多时候都是在写重复代码,比如一个比较完整的框架,然后下面有很多代码都是重复的Copy,其实我们可以利用Visual Studio的模板替我们干这些活,我们只要关注项目具体的业务就 ...
- 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败
背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...
- 使用GitHub For Windows托管Visual Studio项目
本文写得比较早,更新的在VS上使用GitHub的文章请移步:Visual Stuido 2015 Community 使用 GitHub 插件 因为最近同时再看很多技术方面的书,书上的例子有很多自己想 ...
- [Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code
[Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code 问题情景 开发Cordova Plugin的时候,开发的流程应该是: 建立Cordova Plug ...
- Visual Studio 项目目录下的bin目录和 obj目录
一.Bin目录 Visual Studio 编译时,在bin 目录下有debug 和 release 目录. 1.Debug: 通常称为调试版本,它包含调试信息,所以要比Release 版本大很多(可 ...
- visual studio项目多级引用不拷贝dll的问题
最近碰到一个visual studio项目多级引用不拷贝dll的问题,花了很久查了很多资料,特此记录 A项目引用B项目, B项目引用C项目,C项目引用ef及oracle.ef using Oracle ...
- visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)
情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...
- SharePoint 2013 工作流之Visual Studio开发示例篇
SharePoint 2013引用了WF4.0 Foundation,支持使用Designer和Visio进行设计,但是功能受限,而Visual Studio可以开发功能更加丰富的工作流,下面我们简单 ...
- SharePoint 2010中使用Visual Studio 2010进行方便快速的Web Part开发
转:http://www.cnblogs.com/fatwhale/archive/2010/02/24/1672633.html 在Visual Studio 2010中, 已经集成了用于Shar ...
随机推荐
- jsp文件怎么打开呢
jsp是一种嵌入式网页脚本,正常情况下可以用记事本等文本工具直接打开,也可用DREAMWEAVER等网页设计工具友好编辑.不过这样只能看到程序的源代码.当然,我们也可以用IE等浏览器直接打开浏览,前提 ...
- Visual C++ 打印编程技术-编程基础
背景: windows产生前,操作系统(如DOS等)都不提供支持图像处理的打印机驱动程序,使得程序员为打印出图像,不得不针对使用的打印机 自己编写设备驱动程序,导致了大量的.不必要的重复开发. 随着w ...
- 学习XAML中的一些基本语法
1:slider 控件 2:x:名称空间的使用 3:事件处理器 event handler { <Button x:Name="button1" Click=" ...
- IAP (In-App Purchase)中文文档
内容转自:http://yarin.blog.51cto.com/1130898/549141 一.In App Purchase概览 Store Kit代表App和App Store之间进行通信.程 ...
- 10.15_SVG可以解决问题吗
(1)淘宝开放平台. (2)Teiid是一个数据虚拟化系统.Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架.Apache Jackrabbit. (3)SVG:百度百科.SVG.js .Sn ...
- zlib压缩解压示例
#include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h&q ...
- HDU 5351 MZL's Border (规律,大数)
[HDU 5351 MZL's Border]题意 定义字符串$f_1=b,f_2=a,f_i=f_{i-1}f_{i-2}$. 对$f_n$的长度为$m$的前缀$s$, 求最大的$k$满足$s[1] ...
- c++ primer复习(五):类
一:基本内容 1 类 数据成员:用于存储与类对象相关联的状态 成员函数:对数据成员进行操作 类将接口与实现分离,接口指定了类支持的操作,操作的具体实现细节是类的设计者才需要了解 2 类成员 类成员可以 ...
- mysql主从 1050错误
在mysql从库上查询时出现如下错误 ...................... Last_Errno: 1050 Last_Error: Error 'Tab ...
- 网站开发常用jQuery插件总结(11)折叠插件Akordeon
实现折叠菜单,可以完全不使用插件.如果使用jquery的话,实现起来也比较简单,我们只需要定义折叠菜单的样式,然后使用jquery中的渐隐渐现就可以了.如果我们自己写折叠菜单,可以方便的使用我们自己的 ...