title: DISM call via C#
body: <pre><code>Process p = new Process();
  p.StartInfo.FileName = "dism";
  p.StartInfo.Arguments = "/online /get-packageinfo /packagename:WinEmb-File-Based-Write-Filter~31bf3856ad364e35~amd64~~6.1.7601.17514";
  p.StartInfo.UseShellExecute = false;
  p.StartInfo.RedirectStandardError = true;
  p.StartInfo.CreateNoWindow = true;
  p.StartInfo.RedirectStandardOutput = true;
  p.StartInfo.RedirectStandardInput = true;
  p.Start();
  
  string output = p.StandardOutput.ReadToEnd();
  
  p.WaitForExit();
  p.Close();
  </code></pre>
  
  <p>I get output: </p>
  
  <blockquote>
    <p>You cannot service a running 64-bit operating system with a 32-bit version of DISM. 
    Please use the version of DISM that corresponds to your computer's architecture.</p>
  </blockquote>
  
  <p>Tried for FileName:
  "C:\WINDOWS\SYSTEM32\dism.exe"
  and
  "C:\WINDOWS\SYSWOW64\dism.exe"</p>
  
  <p>and still getting same result.</p>
  
  <p>Machine is running on Windows 7 Embedded.</p>
  
  <p>EDIT:
  Have tried:</p>
  
  <blockquote>
    <p><a href="https://stackoverflow.com/questions/5936719/calling-dism-exe-from-system-diagnostics-process-fails">Calling dism.exe from System.Diagnostics.Process Fails</a></p>
  </blockquote>
  
  <p>But still not working..</p>