【发布时间】:2014-04-11 02:07:34
【问题描述】:
所以我在 TFS 构建定义中工作,在一个自定义构建过程中,它将根据用户选择的配置执行一些逻辑。我这样做是为了更全面地自动化测试实验室并使其更加自助。
具体来说,我需要让用户选择在测试运行之前重新启动 SQL Server 的服务,从而允许清除所有缓存并为所有测试测量保持稳定的起点。
为了使用不是手写的东西,并且比我可以使用ServiceController 调用一起破解的东西更全面测试,我想使用WMI 和来自TFSBuildExtensions 项目的WMI Build Activity在 Codeplex 上。使用此活动而不是编写我自己的自定义活动也允许我访问一些日志记录和错误处理,否则我必须自己编写代码。此外,使用 WMI 活动允许我将所有逻辑保留在 .XAML 层,这与构建过程中其他所有操作的完成方式一致。
问题在于WMI 活动的代码内文档有点不清楚。例如,我没有看到它在哪里引用它在Properties 中要求的MachineName 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 进程以启动的内容。
【问题讨论】:
标签: c# tfs wmi build-process tfsbuild