SharePoint Timerjob 部署
我们先引出WSP的由来。要想深入了解WSP,要先从SharePoint开发说起。SharePoint可开发的内容比较杂,最新版本的VS2013中已经包含了Sharepoint解决方案的基本模板,从创建到部署整个过程简单易用,比起以前开发解决方案要容易多了。但还是不能脱离SharePoint宿主机环境,不能远程开发和部署。不过SharePoint已经开始了新的编程思路就是SharePoint APP开发,这种开发模式已经可以在客户端编程部署了。
工程师创建好SharePoint解决方案后,对列表库、Web部件、事件、网站模板、工作流等多方面进行编程开发。这一个个的功能就是Feature,那么如何最终把这些功能部署到SharePoint环境中呢,这就需要先把解决方案打包成WSP文件,其实这个WSP文件就是一个cab文件,是个压缩文件,你如果感兴趣可以用rar工具打开这个文件看看。
要想打包解决方案为wsp文件,有很多种方法,以前我用过的方法有
WSPBuilder工具命令方式,相关链接CodePlex项目
WSPBuilderExtension,一个VS插件,这个比上面的方式更简单
SharePoint Software Factory(SP|SF),这是一个Visual Studio扩展工具,最新版本已经支持了VS2013版本,相关链接VS扩展,CodePlex项目地址
当然VS2013开发SharePoint解决方案已经可以从上下文菜单中直接部署了。在部署过程中会自动打包解决方案。
当然一些其他第三方的cab生成工具也能帮助我们生成wsp文件,但操作过程还是繁琐复杂一些。
这些工具的使用不是本文所要讲解的部分,如何使用可关注我的博客的其他相关文章吧。
二、WSP部署、更新、删除
先要说明一下:
解决方案分为:增加、安装(又名部署)、更新、收回、删除,
Feature分为:激活、停用
增加解决方案
STSADM和SharePoint PowerShell两种命令,从SharePoint2013开始推荐用PowerShell命令集
STSADM命令示例如下(淘汰的用法):
>stsadm -o addsolution -filename <path>\YourSolution.wsp
PowerShell命令示例如下:
>Add-SPSolution -LiteralPath "wsp路径\文件名.wsp"
对于增加后的解决方案,可到管理中心部署解决方案:
>进入管理中心--系统设置--管理场解决方案,我在这里只引入功能所在位置,不去描述如何具体操作了。操作也很简单,也容易理解。
安装(部署)解决方案
>Install-SPSolution -Identity "YourSolution.wsp" -WebApplication "站点地址" -GACDeployment
更新解决方案
>Update-SPSolution -Identity "YourSolution.wsp" -LiteralPath "<path>\YourSolution.wsp" -GACDeployment -force
收回解决方案
>Uninstall-SPSolution -Identity "YourSolution.wsp"
删除解决方案
>Remove-SPSolution -Identity "YourSolution.wsp"
注意:删除解决方案前,先要收回解决方案。
获取已增加的解决方案
>Get-SPSolution
解除解决方案的部署锁定
>Remove-SPSolutionDeploymentLock
三、Feature的部署、停用
在一个解决方案中,会包含一个及其以上的Feature,解决方案部署到站点后,可通过命令来控制解决方案中的各个Feature的状态。Feature概念可对应SharePoint解决方案项目中的Features目录里的结构定义。
获得Feature
>Get-SPFeature
上面这个命令可获得farm中的所有Feature,显示“名称、GUID、SharePoint功能版本”
>Get-SPFeature -Identity "<GUID>"
可以获得一个ID是GUID的那个Feature,
安装SharePoint功能
>Install-SPFeature -path "<YourSolution>_<FeatureName>"
卸载Feature
>Uninstall-SPFeature -Identity "<YourSolution>_<FeatureName>"
在给定范围启用Feature
>Enable-SPFeature -Identity "<YourSolution>_<FeatureName>" -URL "<siteUrl>"
在给定范围禁用Feature
>Disable-SPFeature -Identity "<YourSolution>_<FeatureName>" -URL "<siteUrl>"
四、沙箱解决方案
>Update-SPUserSolution
>Install-SPUserSolution
>Uninstall-SPUserSolution
>Remove-SPUserSolution
>Get-SPUserSolution
>Add-SPUserSolution
五、定时器解决方案
安装 AutoSenArvatodMailJob.wsp
1) Add-SPSolution -LiteralPath "c:\AutoSendMailJob.wsp"
2) Install-SPSolution -Identity "AutoSendMailJob.wsp" -WebApplication <siteUrl> -GACDeployment
3) iisreset
4) Disable-SPFeature -Identity "AutoSendMailJob_Feature2" -Url "<siteUrl>" 5) Enable-SPFeature -Identity "AutoSendMailJob_Feature2" -Url "<siteUrl>"
6) net stop SPTimerV4
7) net start SPTimerV4
更新 AutoSenArvatodMailJob.wsp
1) Disable-SPFeature -Identity "Arvato.BBA.AutoSendMailJob_Feature2" -Url "<siteUrl>"
2) Uninstall-SPSolution –Identity "Arvato.BBA.AutoSendMailJob.wsp" -WebApplication "<siteUrl>" -Confirm:$false
3) Remove-SPSolution –Identity Arvato.BBA.AutoSendMailJob.wsp -Confirm:$false
4) Add-SPSolution -LiteralPath "c:\Arvato.BBA.AutoSendMailJob2.wsp"
5) Install-SPSolution -Identity "Arvato.BBA.AutoSendMailJob.wsp" -WebApplication "<siteUrl>" -GACDeployment
6) iisreset
7) Enable-SPFeature -Identity "Arvato.BBA.AutoSendMailJob_Feature2" -Url "<siteUrl>" 8
8) net stop SPTimerV4
9) net start SPTimerV4
3、删除多余定时器方法
//查看 计时器 "ArvatoBBASendMailTimerJob"
Get-SPTimerJob | ?{$_.Name -match "ArvatoBBASendMailTimerJob"} |ft id,name
//Set job to a variable
$job = Get-SPTimerJob -id 59af3540-7ac0-4477-82f9-1f6ab9829aca
//And delete it.
$job.Delete()
最后说明一下:VS2013的SharePoint解决方案的bin\debug目录下,编译后会自动打包wsp文件。要想将方案远程部署到企业环境,可拷贝这个wsp文件,写好一个ps1的PowerShell脚本文件。交付给企业系统管理员执行安装就可以。