Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WMI生成活动调用远程命令行命令_C#_Tfs_Wmi_Build Process_Tfsbuild - Fatal编程技术网

C# 使用WMI生成活动调用远程命令行命令

C# 使用WMI生成活动调用远程命令行命令,c#,tfs,wmi,build-process,tfsbuild,C#,Tfs,Wmi,Build Process,Tfsbuild,因此,我在一个TFS构建定义中工作,在一个自定义构建过程中,它将根据用户选择的配置执行一些逻辑。我这样做是为了更全面地自动化测试实验室并使其更自助 具体来说,我需要为用户提供在测试运行之前重新启动SQL Server服务的选项,从而允许清除所有缓存,并为所有测试度量保持一个稳定的起点 为了使用不是手工编写的东西,并且比我可以使用ServiceController调用一起破解的东西测试得更全面,我想使用Codeplex上项目中的WMI和WMI构建活动。使用此活动而不是编写自己的自定义活动也允许我访

因此,我在一个TFS构建定义中工作,在一个自定义构建过程中,它将根据用户选择的配置执行一些逻辑。我这样做是为了更全面地自动化测试实验室并使其更自助

具体来说,我需要为用户提供在测试运行之前重新启动SQL Server服务的选项,从而允许清除所有缓存,并为所有测试度量保持一个稳定的起点

为了使用不是手工编写的东西,并且比我可以使用
ServiceController
调用一起破解的东西测试得更全面,我想使用Codeplex上项目中的
WMI
WMI构建活动。使用此活动而不是编写自己的自定义活动也允许我访问一些日志记录和错误处理,否则我将不得不自己编写代码。此外,使用WMI活动允许我将所有逻辑保留在
.XAML
层,这与构建过程中其他所有操作的方式一致

问题在于
WMI
活动的代码内文档有点不清楚。例如,我看不到它在哪里引用了它在
属性
中要求的
MachineName
数据,而且我也不太确定如何传入MethodParameters以便在远程机器上使用。我是否只需输入以下内容:

命令行#~#净停止“MSSQLServer”/y

还是什么?我看到的特定行的错误是:

“String”无法转换为“System.Collections.Generic.IEnumerable(Of String)”,因为“Char”不是根据“Interface IEnumerable(Of Out T)”中的“Out”泛型参数“T”的要求从“String”派生而来的。


我已经阅读了一些有关
WMI
的内容,但我可能遗漏了一些关于使其连接到Win32进程以启动的内容。

为什么不执行powershell脚本或.command?这样,当您迁移到2013年构建模板时,只需付出最小的努力


Powershell内置了cmdlet,用于管理win服务,甚至是远程管理。

鉴于我正在进行的项目的要求,我实际上不适合这样做,但我确实考虑过先这样做,并将其作为一种选择。实际上,在某些方面,它更简单,效率更高。然后考虑使用SC.EXE命令来管理本地和远程Windows服务。它可以使用InvokeProcess活动调用,并且可能比WMI选项简单得多。这样可以处理停止具有依赖项的服务吗?