应用部署方案

应用部署方案,第1张

SharePoint开发部署WSP解决方案包

注:本文内容基于SharePoint2013版本,开发工具基于VS2013。版本历史也可以参考这篇文章。

WSP:SharePoint解决方案包。


一.概念和工具

让我们从WSP的起源说起。要了解WSP,我们应该从SharePoint开发开始。Sharepoint的可开发内容相当复杂。最新版本的VS2013已经包含SharePoint解决方案的基本模板。从创建到部署的整个过程简单易用,比之前的解决方案开发要容易很多。但是,它不能脱离SharePoint主机环境,不能远程开发和部署。不过SharePoint已经开始了一个新的编程思路,那就是SharePointAPP开发,可以在客户端进行编程和部署。

在工程师创建了SharePoint解决方案之后,他已经对列表库、Web部件、事件、网站模板、工作流和其他方面进行了编程和开发。每一个的功能都是特性,那么如何最终将这些功能部署到SharePoint环境中呢?首先需要将解决方案打包成一个WSP文件。事实上,这个WSP文件是一个cab文件,是一个压缩文件。有兴趣的可以用rar工具打开这个文件看看。

将解决方案打包成wsp文件的方法有很多,我之前使用的方法是


  • WSPBuilder工具命令模式,相关链接CodePlex项目

  • WSPBuilderExtension,一个VS插件,比上面的方法简单。

    SharePoint软件工厂(SP|SF),是VisualStudio的扩展工具。最新版本已经支持VS2013版本。相关链接VS扩展,CodePlex项目地址

    当然,VS2013开发的SharePoint解决方案已经可以直接从上下文菜单部署。该解决方案在部署过程中自动打包。

    当然,其他一些第三方cab生成工具也可以帮助我们生成wsp文件,但是 *** 作过程还是比较繁琐复杂。

    这些工具的使用不是本文要解释的部分。如何使用它们可以关注我博客中的其他相关文章。


    二。WSP部署、更新和删除

    先解释一下:

    解决方案分为:添加、安装(又名部署)、更新、撤销、删除,

    功能分为:激活和停用

    添加解决方案

    两个命令,STM和SharePointPowerShell。建议从SharePoint2013使用PowerShell命令集。

    STM命令的一个例子如下(消去法的用法):

    >stsadm-oaddsolution-filename<;路径>\YourSolution.wsp

    PowerShell命令的示例如下:

    >add-spsolution-literalpath"wsppath\filename.wsp"

    对于添加的解决方案,您可以在管理中心部署该解决方案:

    >进入管理中心-系统设置-管理现场解决方案。这里只介绍功能的位置,不详细描述如何 *** 作。 *** 作简单易懂。

    安装(部署)解决方案

    >install-spsolution-identity"yoursolution.wsp"-web应用程序"站点地址"-GACDeployment

    更新解决方案

    >update-spsolution-Identity"yoursolution.wsp"-literalpath"<;路径>\yoursolution.wsp"-GACdeployment-force

    撤回解决方案

    >uninstall-spsolution-Identity"yoursolution.wsp"

    删除解决方案

    >remove-spsolution-Identity"yoursolution.wsp"

    注意:在删除解决方案之前,您必须将其收回。

    获取添加的解决方案

    >Get-SPSolution

    解锁解决方案的部署

    >remove-SPSolutionDeploymentLock

    三。功能的部署和停用

    一个解决方案将包含一个或多个功能。将解决方案部署到站点后,可以通过命令控制解决方案中每个功能的状态。功能概念可以对应于SharePoint解决方案项目的功能目录中的结构定义。

    获取功能

    >Get-SPFeature

    上述命令可以获得场中的所有功能,显示“名称、GUID、SharePoint功能版本”

    >get-spfeature-Identity"<;GUID>;"

    您可以获得一个ID为GUID的特性,

    安装SharePoint功能

    >安装-spfeature-path"<;您的解决方案>_<功能名称>

    卸载功能

    >uninstall-spfeature-Identity"<;您的解决方案>_<功能名称>

    在给定范围内启用功能

    >enable-spfeature-Identity"<;您的解决方案>_<功能名称>-URL"<;siteUrl>;"

    在给定范围内禁用特性

    >disable-spfeature-Identity"<;您的解决方案>_<功能名称>-URL"<;siteUrl>;"

    四。沙盒解决方案

    >更新-SPUserSolution

    >Install-SPUserSolution

    >卸载-SPUserSolution

    >移除-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)净停止SPTimerV4
    7)净开始SPTimerV4

    更新AutoSenArvatodMailJob.wsp

    1)Disable-spfeature-Identity"arvato。BBA.AutoSendMailJob_feature2"-Url"<;siteUrl>;"

    2)卸载-spsolution–Identity"arvato。BBA.autosendmailjob.wsp"-webapplication"<;siteUrl>;"-Confirm:$false
    3)Remove-spsolution-IdentityArvato。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)净停止SPTimerV4
    9)净开始SPTimerV4

    3.删除冗余定时器的方法

    //检查计时器“arvatobasendmailtimerjob”
    Get-sptimerjob|?{$_.name-match"ArvatoBBASendMailTimerJob"}|ftid,name
    //将作业设置为变量
    $job=Get-SPTimerJob-id59af3540-7ac0-4477-82F9-1f6ab9829ACA
    //并将其删除。
    $job。删除()


    最后:wsp文件编译后会自动打包在VS2013的SharePoint解决方案的bin\debug目录下。要将解决方案远程部署到企业环境中,您可以复制这个wsp文件并编写一个ps1PowerShell脚本文件。只需将其交付给企业系统管理员进行安装即可。

    PS1脚本文件,可由C#调用和执行。这部分的解释要在后面的博客里总结,所以在这里说明一下。

    以编写备份网站集的PS1文件为例:

    Add-PSSnapin Microsoft.SharePoint.PowerShell  backup-spsite -identity $args[0] -path $args[1] -force

    在该脚本中,backup-spsite用于备份SharePoint网站集,网站的URL和备份路径设置为两个参数,并保存为一个后缀为ps1的文件,如backup.ps1

    编写批处理脚本来执行备份和写入日志。

    @echo off SET SOURCE_SITE= SET DEST=C:\backup\RZH-SP-204_%date:~0,10%.bak SET LOG=C:\backup\BackupLog.txt echo %DATE%  %time:~,5%  :开始备份网站:%SOURCE_SITE%>> %LOG% powershell -command C:\backup.ps1  %SOURCE_SITE% %DEST% echo %DATE%  %time:~,5%  :网站:%SOURCE_SITE%备份完成>> %LOG% @echo on

    将此脚本保存为bat批处理文件

    不知道上面的代码你能不能看懂,这里就不解释了。

    最后,一个完整的安装wsp解决方案的脚本将会呈现给您。如果不够完整,请告诉我们!

    Add-PSSnapin Microsoft.SharePoint.PowerShell $solutionName = "SharePointProject2.wsp" $webUrl = "http://wisdom-moss/" $path = Split-Path -Parent $MyInvocation.MyCommand.Definition $solution = Get-SPSolution | select name foreach($s in $solution){     if($s -match $solutionName){         Write-Host -ForegroundColor Green "Solution '$solutionName' was existed."                 $deployed = Get-SPSolution -Identity $solutionName | select deployed         if($deployed.Deployed){             Write-Host -ForegroundColor Green "Start uninstall solution..."             Uninstall-SPSolution -Identity $solutionName -Confirm:$false -Verbose -WebApplication $webUrl             #sleep 30s, need uninstall over.             Start-Sleep -s 30             Write-Host -ForegroundColor Green "End uninstall solution!"         }         Write-Host -ForegroundColor Green "Start remove solution..."         Remove-SPSolution -Identity $solutionName -Confirm:$false         Write-Host -ForegroundColor Green "End remove solution!"     } } Write-Host -ForegroundColor Green "Start add solution..." Add-SPSolution -LiteralPath ($path + '\' +  $solutionName) Write-Host -ForegroundColor Green "End add solution!" Write-Host -ForegroundColor Green "Start deploy solution..." Install-SPSolution -Identity $solutionName -WebApplication $webUrl -FullTrustBinDeployment Write-Host -ForegroundColor Green "End deploy solution!" Write-Host -ForegroundColor Green "End all executed."

    注意:因为我的解决方案被定义为WebApplication的程序集部署目标,所以我想将dll部署到网站集的bin目录。如果您的解决方案希望部署到GAC以进行解决方案的全局部署,则需要将程序集部署到GlobalAssemblyCache。


    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/784170.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-04
    下一篇 2022-05-04

    发表评论

    登录后才能评论

    评论列表(0条)

    保存