【问题标题】:Concatenating a complex string in VB. NET在VB中连接一个复杂的字符串。网
【发布时间】:2014-02-04 21:08:55
【问题描述】:

我正在使用 START-PROCESS 调用 MSTEST 并使用多个参数定义容器和测试设置,但是我认为它在连接它的方式上令人窒息。在将其放入START-PROCESS 之前,我是否应该使用其他方法来构造此字符串?

Dim rwSettings As String = "\\PerfvsCtlr2\LoadtestSettings\PerfVSCtlr2forRemote.testsettings"
Dim rwContainer As String = "\\PerfvsCtlr2\LoadTest\LoadTestDefs\Heifer_Interactive_Peak_Workload.loadtest"
Dim rwResults As String = Workload.txtRwResults.Text
System.Diagnostics.Process.Start(Environment.GetEnvironmentVariable("VS110COMNTOOLS") & "..\Ide\MSTEST.EXE", "/Testsettings:""" & rwSettings & "" & " /Testcontainer:""" & rwContainer & "" & " /Resultsfile:""" & rwResults & "")

这个问题目前未知,因为 process.start 打开和关闭窗口的速度太快了,我无法捕捉到任何类型的错误消息。所以我的问题有两个:

上面的连接看起来正确吗?有没有办法可以获取更多关于最终执行字符串 Process.Start 组合在一起或返回的错误消息的信息?

【问题讨论】:

  • 哦,天哪。我忘了是不是。我会编辑问题

标签: vb.net string concatenation process.start


【解决方案1】:

您可以使用Path.Combine 构建路径并使用String.Format 构建Process.Start 的参数:

Dim rwSettings As String = "\\PerfvsCtlr2\LoadtestSettings\PerfVSCtlr2forRemote.testsettings"
Dim rwContainer As String = "\\PerfvsCtlr2\LoadTest\LoadTestDefs\Heifer_Interactive_Peak_Workload.loadtest"
Dim rwResults As String = "Workload.txtRwResults.Text"

Dim fileName = System.IO.Path.Combine(Environment.GetEnvironmentVariable("VS110COMNTOOLS"), "Ide\MSTEST.EXE")
Dim args = String.Format("/Testsettings:{0} /Testcontainer:{1} /Resultsfile:{2}", rwSettings, rwContainer, rwResults)

System.Diagnostics.Process.Start(fileName, args)

但是,我必须承认,我不确定这是否会产生预期的结果。无论如何,它可能会给你一个想法。

【讨论】:

  • 不要忘记参数周围的引号 :)
【解决方案2】:

我怀疑您的问题是您没有关闭引号,例如:

" /Testcontainer:""" & rwContainer & ""

应该是:

" /Testcontainer:""" & rwContainer & """"

注意末尾的双引号需要是四引号。简单地说"" 意味着一个空字符串。

您应该使用其他东西吗?大概。如果您使用StringBuilderString.Format,它的可读性和效率会更高,但即便如此,您仍然需要修复右引号问题。

【讨论】:

  • 确实是这样,但我在使用简单引号时遇到了很多麻烦,这表明我应该让它更易于阅读。我将研究 StringBuilder 和 String.Format。
猜你喜欢
  • 2015-09-18
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 2023-04-04
  • 2018-10-15
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多