所以我在TFS构建定义中,在自定义构建过程中工作,该过程将根据用户选择的配置执行某些逻辑。我这样做是为了更充分地自动化测试实验室并使其更加自助服务。
具体来说,我需要为用户提供在测试运行之前重新启动SQL Server服务的选项,从而允许清除所有缓存并为所有测试测量保持稳定的起始点。
为了使用非手工编写的内容并且使用ServiceController
调用进行更充分的测试,我想使用WMI
和WMI Build Activity
来自Codeplex上的TFSBuildExtensions项目。使用此活动而不是编写我自己的自定义活动也允许我访问一些日志和错误处理,否则我将自己编写代码。此外,使用WMI活动允许我将所有逻辑保留在.XAML
层,这与在构建过程中完成其他所有操作的方式一致。
问题是WMI
活动的代码内文档有点不清楚。例如,我没有看到它在MachineName
中引用它所引用的Properties
agrument的位置,而且我不太确定我应该如何传递MethodParameters以便在远程使用机。我只输入类似的内容:
CommandLine#~#Net Stop "MSSQLServer" /y
或者是什么?我看到的特定行的错误是:
'String' cannot be converted to 'System.Collections.Generic.IEnumerable(Of String)' because 'Char' is not derived from 'String' as required for the 'Out' generic parameter 'T' in 'Interface IEnumerable(Of Out T)'.
我已经阅读了一些关于WMI
的内容,但我可能遗漏了一些关于连接到Win32进程的事情。
答案 0 :(得分:0)
为什么不执行powershell脚本or.command?这样,当您转移到2013构建模板时,这将是一项最小的工作。
Powershell内置了cmdlet,用于管理win服务,甚至远程管理。