Reputation: 177
I have a solution which contains multiple projects (csproj & 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.
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 ?
I tried this script, but it returns 0 dependencies for all my projects. Probably because my solution is 2013, and i'm using v14.0\Microsoft.Build.dll
. v12.0\Microsoft.Build.dll
return none projects.
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
}
Another way is to parse the btproj and csproj files, but it seems to be hard to code for a basic function.
Upvotes: 3
Views: 1369
Reputation: 11527
There is no script to do it, but usually with BizTalk you will want to deploy projects in the following order.
The above of course is only valid if that is how you have structured your projects.
Upvotes: 0