使用具有多个参数的进程对象

时间:2014-02-11 15:15:27

标签: vb.net process process.start

我有一段代码调用MSTEST,其中有多个参数定义要运行的特定测试集以及运行它的环境。目前代码看起来像这样(有点乱,但它有效):

Process.Start(Environment.GetEnvironmentVariable("VS110COMNTOOLS") 
    & "..\Ide\MSTEST.EXE", "/Testsettings:""" & rwSettings & """" 
    & " /Testcontainer:""" & rwContainer & """" & " /Resultsfile:""" 
    & rwResults & """")

使用先前定义的各种变量。我不得不使用GetEnvironmentVariable("VS110COMNTOOLS")调用,因为我不能保证Visual Studio的安装位置并且需要访问MSTEST可执行文件。 "..\Ide\MSTEST.EXE"是因为环境变量只会让我到达正确的区域,我需要让系统在找到IDE之前导航到MSTEST

我想要清理它,因为它不是非常优雅或可读,而且因为我希望能够引发运行此过程的事件。但是,我没有看到documentation如何处理Process类的参数。如何让我创建的Process对象处理多个参数(名称中可能包含空格)?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

Dim Testsettings As String = "/Testsettings:"""
Dim Testcontainer As String = " /Testcontainer:"""
Dim Resultsfile As String = " /Resultsfile:"""
Dim Quote As String = """"

Dim p As New Process()
p.StartInfo.FileName = Environment.GetEnvironmentVariable("VS110COMNTOOLS") 
                       & "..\Ide\MSTEST.EXE"
p.StartInfo.Arguments = Testsettings & rwSettings & Quote & Testcontainer 
                        & rwContainer & Quote & Resultsfile & rwResults & Quote

p.Start()