title: Passing multiple arguments as command line args
body: <p>I am calling one .NET app from another using Process.Start and passing in a bunch of strings as command line arguments:</p>
  
  <pre><code>startInfo.Arguments = String.Join("""  """, MyArray)
  Dim p As Process = Process.Start(startInfo)
  </code></pre>
  
  <p>My intent is to pass in something like:</p>
  
  <p>"first value" "second value" "third value"</p>
  
  <p>and retrieve from within the second app:</p>
  
  <pre><code>Sub Main(ByVal args() as String)
      If args.Length &gt; 0 Then
  
      End If
      ...
  End Sub
  </code></pre>
  
  <p>Unfortunately args.Length only returns 1 - all the values I pass get passed on as a single value: "first value second value third value"</p>
  
  <p>I tried wrapping each in double quotes in the first app but does not seem to help. I know I can just retrieve args(0) and then split it into an array of values but I do not want to do that. Also somehow it worked for me before, even without double quotes. So I am trying to figure out what happened and how can I make it pass my strings as multiple values instead of 1.</p>