Hi,
We had a similar requirement for our project where we had one solution containing multiple BizTalk Applications. I came up with a workaround so that the Deployment Framework Visual Studio add-in still worked with multiple .btdfproj in one solution. Taking the above example:
Solution "mySolution"
---Deployment (folder)
------Deployment.btdfproj
---BizTalk (folder)
------"Application1" (Folder)
-----------Deployment (folder)
--------------Deployment.btdfproj
-----------Orchestration
-----------Schemas
-----------Transforms
-----------etc
------"Application2" (Folder)
------"Application3" (Folder)
There was one .btdfproj per application for managing deployment, undeployment, creating msi etc. for each application. At the solution level, I also added a master Deployment.btdfproj file under the Deployment folder. This is the .btdfproj file that the Visual Studio add-in will invoke.
In the master Deployment.btdfproj file, it has a list of targets that matches those that the add-in invokes, e.g. "Deploy", "Undeploy", "Installer". Under each target, it calls MSBuild to subsequently call the "child" .btdfproj in each application in the order defined to carry out the corresponding actions. Below is a sample master Deployment.btdfproj file:
Hope this helps.
Kit
We had a similar requirement for our project where we had one solution containing multiple BizTalk Applications. I came up with a workaround so that the Deployment Framework Visual Studio add-in still worked with multiple .btdfproj in one solution. Taking the above example:
Solution "mySolution"
---Deployment (folder)
------Deployment.btdfproj
---BizTalk (folder)
------"Application1" (Folder)
-----------Deployment (folder)
--------------Deployment.btdfproj
-----------Orchestration
-----------Schemas
-----------Transforms
-----------etc
------"Application2" (Folder)
------"Application3" (Folder)
There was one .btdfproj per application for managing deployment, undeployment, creating msi etc. for each application. At the solution level, I also added a master Deployment.btdfproj file under the Deployment folder. This is the .btdfproj file that the Visual Studio add-in will invoke.
In the master Deployment.btdfproj file, it has a list of targets that matches those that the add-in invokes, e.g. "Deploy", "Undeploy", "Installer". Under each target, it calls MSBuild to subsequently call the "child" .btdfproj in each application in the order defined to carry out the corresponding actions. Below is a sample master Deployment.btdfproj file:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Installer" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
<ApplicationListToDeploy>..\BizTalk\Application1\Deployment\Deployment.btdfproj;..\BizTalk\Application2\Deployment\Deployment.btdfproj;..\BizTalk\Application3\Deployment\Deployment.btdfproj</ApplicationListToDeploy>
<ApplicationListToUndeploy>..\BizTalk\Application3\Deployment\Deployment.btdfproj;..\BizTalk\Application2\Deployment\Deployment.btdfproj;..\BizTalk\Application1\Deployment\Deployment.btdfproj</ApplicationListToUndeploy>
</PropertyGroup>
<Import Project="$(DeploymentFrameworkTargetsPath)BizTalkDeploymentFramework.targets" />
<ItemGroup>
<BizTalkHosts Include="MyHost" />
</ItemGroup>
<Target Name="Deploy">
<MSBuild Projects="$(ApplicationListToDeploy)" Targets="Deploy" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Undeploy">
<MSBuild Projects="$(ApplicationListToUndeploy)" Targets="Undeploy" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="Installer">
<MSBuild Projects="$(ApplicationListToDeploy)" Targets="Installer" Properties="Configuration=$(Configuration)" />
</Target>
... etc.
</Target>
</Project>
For example, when the Deploy button of the add-in is clicked, it will deploy all the applications in the solution in the defined order.Hope this helps.
Kit