PowerShell在SharePoint 2010自动化部署中的应用(1)--代码获取
2010-11-12 01:07
483 查看
由于项目需要,要把项目组成员中每天的工作整合到一起。每天手动部署很是费时费力。于是有了是否能利用PowerShell进行自动化部署的想法,正好也有机会学习一下PowerShell。
先交代一下项目背景,这个项目是SharePoint 2010的项目,所有功能都是通过VS2010 生成的wsp包部署到服务器的。项目的代码由公司TFS管理,咱一小程序员,没有任何管理权限(只能check in/out)。
初步想法是代码获取到开发服务器,编译,执行更新脚本更新开发服务器上的当前版本。以后可以扩展为本地获取,编译,上传,远程执行(PowerShell2的新功能)。按照这个逻辑将功能细化为:代码获取、代码编译打包、项目部署、整合。
下面我就按照这个细化的逻辑逐条说明:
[b]1. 代码获取[/b]
根据网上找到的资料,可以有3种途径
A.VS2010 U版集成了访问TFS的命令行工具。功能的实现是通过TF.exe命令行程序提供,没有提供PowerShell编程接口,虽说PowerShell也可以调用,但在异常处理和信息的交互上不好处理。
B.微软官方提供的TFS管理工具包Team Foundation Server Power Tools September 2010,目前最新的版本是September2010(下载)
这个应该是官方推荐的方法,值得一提的是该工具包不光提供了命令行程序,还通过PowerShell的Cmdlets提供了基本的版本控制命令。
C.通过PowerShell直接调用TFS的对象。这个属于终极方法了,这个要是都不能实现你的功能,就给微软的产品组发信吧,呵呵。
这3种方法中方法A是通过命令行程序实现的,没有提供PowerShell编程接口。方法B是微软提供的管理工具包,应该是官方推荐的方法,这里有一篇介绍http://archive.cnblogs.com/a/1841403/,不多说。我这里说说方法C。
下面列出了一些基本方法,更多的说明可以查MSDN
代码
代码获取这一部分其实很通用,只要是去TFS里面抓代码都能用到,后面我们讲的自动化编译和打包会逐渐的和SharePoint结合起来。(未完)
先交代一下项目背景,这个项目是SharePoint 2010的项目,所有功能都是通过VS2010 生成的wsp包部署到服务器的。项目的代码由公司TFS管理,咱一小程序员,没有任何管理权限(只能check in/out)。
初步想法是代码获取到开发服务器,编译,执行更新脚本更新开发服务器上的当前版本。以后可以扩展为本地获取,编译,上传,远程执行(PowerShell2的新功能)。按照这个逻辑将功能细化为:代码获取、代码编译打包、项目部署、整合。
下面我就按照这个细化的逻辑逐条说明:
[b]1. 代码获取[/b]
根据网上找到的资料,可以有3种途径
A.VS2010 U版集成了访问TFS的命令行工具。功能的实现是通过TF.exe命令行程序提供,没有提供PowerShell编程接口,虽说PowerShell也可以调用,但在异常处理和信息的交互上不好处理。
B.微软官方提供的TFS管理工具包Team Foundation Server Power Tools September 2010,目前最新的版本是September2010(下载)
这个应该是官方推荐的方法,值得一提的是该工具包不光提供了命令行程序,还通过PowerShell的Cmdlets提供了基本的版本控制命令。
C.通过PowerShell直接调用TFS的对象。这个属于终极方法了,这个要是都不能实现你的功能,就给微软的产品组发信吧,呵呵。
这3种方法中方法A是通过命令行程序实现的,没有提供PowerShell编程接口。方法B是微软提供的管理工具包,应该是官方推荐的方法,这里有一篇介绍http://archive.cnblogs.com/a/1841403/,不多说。我这里说说方法C。
下面列出了一些基本方法,更多的说明可以查MSDN
代码
#function defination function get-tfs ( [string] $serverName = $(Throw 'serverName is required') ) { # load the required dll [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client") $propertiesToAdd = ( ('VCS', 'Microsoft.TeamFoundation.VersionControl.Client', 'Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer'), ('WIT', 'Microsoft.TeamFoundation.WorkItemTracking.Client', 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore'), ('BS', 'Microsoft.TeamFoundation.Build.Common', 'Microsoft.TeamFoundation.Build.Proxy.BuildStore'), ('CSS', 'Microsoft.TeamFoundation', 'Microsoft.TeamFoundation.Server.ICommonStructureService'), ('GSS', 'Microsoft.TeamFoundation', 'Microsoft.TeamFoundation.Server.IGroupSecurityService') ) # fetch the TFS instance, but add some useful properties to make life easier # Make sure to "promote" it to a psobject now to make later modification easier [psobject] $tfs = New-Object Microsoft.TeamFoundation.Client.TeamFoundationServer([String]$serverName, (New-Object Microsoft.TeamFoundation.Client.UICredentialsProvider)); $tfs.EnsureAuthenticated(); foreach ($entry in $propertiesToAdd) { $scriptBlock = ' [System.Reflection.Assembly]::LoadWithPartialName("{0}") > $null $this.GetService([{1}]) ' -f $entry[1],$entry[2] $tfs | add-member scriptproperty $entry[0] $ExecutionContext.InvokeCommand.NewScriptBlock($scriptBlock) } return $tfs } #variable #Team Project Collection全路径,注意不光要提供TFS Server的URL还要包括Project Collection的名称 $srv = "http://TFSServer/tfs/ProjectCollection" #创建TFS 对象模型 $tfs = get-tfs("http://TFSServer/tfs/ProjectCollection") #直接获取Workspace对象 $ws = $tfs.VCS.GetWorkspace("[工作区名称]","工作区所有者");
代码获取这一部分其实很通用,只要是去TFS里面抓代码都能用到,后面我们讲的自动化编译和打包会逐渐的和SharePoint结合起来。(未完)
相关文章推荐
- PowerShell在SharePoint 2010自动化部署中的应用(1)--代码获取
- PowerShell在SharePoint 2010自动化部署中的应用(1)--代码获取
- PowerShell 在 SharePoint 2010 自动化部署中的应用(2)-编译打包
- PowerShell 在 SharePoint 2010 自动化部署中的应用(2)-编译打包
- 借助 PowerShell 在 Windows Azure 中实现 SharePoint 部署自动化
- SharePoint 2010 PowerShell 系列 之 应用总结 (二)
- 借助 PowerShell 在 Windows Azure 中实现 SharePoint 部署自动化
- SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II
- SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
- 借助 PowerShell 在 Windows Azure 中实现 SharePoint 部署自动化
- SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
- 借助 PowerShell 在 Windows Azure 中实现 SharePoint 部署自动化
- SharePoint 2010 PowerShell 系列 之 文档管理 高级应用和企业案例(文档迁移)
- SharePoint 2010 PowerShell 系列 之 备份、还原、部署 .WSP
- SharePoint 2010 PowerShell 系列 之 备份、还原、部署 .WSP
- [SharePoint 2010] SharePoint 2010 部署、收回和删除解决方案----STSADM和PowerShell
- SharePoint 2010 PowerShell 系列 之 备份、还原、部署 .WSP
- Jenkins自动化部署及代码检查配置应用
- 在SharePoint中无代码开发InfoPath应用: 获取当前用户信息
- 应用WSH、JavaScript和 bat 实现自动化构建工具改善工作中的代码部署流程!