title: Where solution build order is saved
body: <p>I have a solution which contains multiple projects (csproj &amp; btproj). I'm actually running BizTalk 2013 R2, so I'm developing under Visual Studio 2013. I have many powershell scripts to deploy my applications and I have to enhance them.</p>
  
  <p>I need to read or determine the projects build order of a solution to deploy my assemblies in this order. Ok I can get it under "Project->Project Dependencies", but where are these informations stored ? Or how can I determine them programatically with powershell ?</p>
  
  <p>I tried this script, but it returns 0 dependencies for all my projects. Probably because my solution is 2013, and i'm using <code>v14.0\Microsoft.Build.dll</code>. <code>v12.0\Microsoft.Build.dll</code> return none projects.</p>
  
  <pre><code>Add-Type -Path (${env:ProgramFiles(x86)} + '\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.dll')
  $solutionFile = "sln file full path"
  $solution = [Microsoft.Build.Construction.SolutionFile] $solutionFile
  
  $projects = $solution.ProjectsByGuid.Values | Where-Object {($_.ProjectType -eq 'KnownToBeMSBuildFormat') -and ($_.ProjectName -notlike '*.BAM') -and ($_.ProjectName -notlike '*.Bindings')}
  echo $projects.Count
  
  foreach($project in $projects)
  { 
      echo $project.ProjectName $project.Dependencies.Count
  }
  </code></pre>
  
  <p>Another way is to parse the btproj and csproj files, but it seems to be hard to code for a basic function.</p>