SharePoint 2010 一种快捷的开发部署方式
我们都知道,通过Visual Studio开发SharePoint项目的话,Visual Studio默认是将编译后的DLL文件部署到GAC,为了下文描述方便暂称之为GAC部署。
这种模式很简单,不需要额外的配置,只需右键点击项目选择Deploy就可以将代码部署到SharePoint环境,Visual Studio会自动将DLL复制到GAC。
但是,SharePoint为了提高性能,从GAC里加载代码后,会将之缓存到内存里,以避免频繁加载。当我们准备将下一个版本的代码部署到GAC时,必须回收应用程序池或者重启IIS来清除之前的缓存,让SharePoint从GAC里加载最新的代码版本。
Visual Studio会自动帮我们回收或重启IIS,问题在于,我们的开发环境性能通常都很一般,不论是公司还是私人的电脑,预算都有限,不可能为了一台开发用的机器投入太多的金钱,而且开发机器上总是有杂七杂八的东西,这就导致了回收/重启时间会很长,以笔者机器为例,8G内存,双核处理器,重启时间是2分钟到4分钟不等,虽然我们可以利用这等闲暇去上个厕所或者喝杯茶,但是经常为了几个小小的代码改动而接二连三的重启、等待,花费的总时间是非常可观的。
下面笔者介绍另一种部署,简称之为Bin部署吧,这种部署需要先配置下Visual Studio以及web.config,不需要回收、重启IIS,编译代码后,只需要刷新页面,仅仅只需5秒钟左右即可看到最新的结果。
在应用这种部署之前一些你必须知道的事情:
详细的配置步骤:
1. 打开Visual Studio,在项目的属性窗口,将Assemby Deployment Target改成WebApplication。

2. 将Outout 路径改成目标SharePoint站点的Bin文件夹的路径。

3. 将下面图片里的部分添加到Package.Template.xml,注意修改对应的程序集以及命名空间的名称。

4. 将下面的一段加到站点的web.config里
<securityPolicy>
[...]
<trustLevel name=”Full” policyFile=”internal”/>
</securityPolicy>
5. 在web.config里注释掉默认的权限级别,然后添加新的权限级别
<!--<trust level="WSS_Minimal" originUrl="" />-->
<trust level="Full" originUrl="" />
6. 如果只是修改前台页面的内容,右击项目,选择Quick Deploy,选择Copy to SharePoint Root (需要先安装CKSDEV),刷新页面,检查最新的结果。

7. 如果只是修改了code behind 文件,右击项目,选择Rebuild,刷新页面,检查最新的结果。

如果你想要将Bin部署切换到GAC部署,只需要将第一步的Assembly Deployment Target 改成GlobalAssemblyCache,以及第三步里的DeploymentTarget改成GlobalAssemblyCache即可。