How to deploy mutli project solution using BTDF

Topics: Bindings File, Settings Management and SSO, General Questions, Getting Started/Beginner, Server Deployment
May 28, 2014 at 12:14 PM
Hi,

My solution looks like:

Solution 'HelloWorld'(2 projects)
  • HelloWorld.Deployment
    --Deployment.btdfproj
    --InstallWizard.xml
    --License.rtf
    --PortBindingsMaster.xml
    --SetingsFileGenerator.xml
    --UninstallWizard.xml
  • CallOrchestration
    --References
    --findShippingPrice.odx
    --PO.xsd
    --PropertySchema.xsd
    --receivePO.odx
  • HelloWorld
    --References
    --HelloOrchestration.odx
    --InvoiceSchema.xsd
    --POSchema.xsd
    --POToInvoice.btm
I am working on implementing BTDF For BizTalk deployments. I am developing a sample solution for it and is stuck in middle of the process.
My Queries regarding BTDF are:
  1. My Solution has multiple projects and one btdf project. I can successfully deploy HelloWorld project using BTDF but couldn’t deploy CallOrchestration project using the same BTDf project.
    Can both the projects be deployed using one BTDF project? If yes, then how?
  2. I want to know if there is a possibility to deploy only CallOrchestration project in case there is just a small change in the PO schema of CallOrchestration. Or the BTDF will deploy both the projects even if there is change in only one of the project? We have this scenario often, that in our multi-project solution we got a change request in map in one of the project. And just want to redeploy dll of the the concerned project and not others. Is it possible to do such deployment using BTDF?
Coordinator
May 29, 2014 at 5:42 AM
Are CallOrchestration and HelloWorld both BizTalk applications? If it's all one application, then yes, you can deploy any number of DLL's from one .btdfproj. Add it to an Orchestrations ItemGroup.

To your second question, the Deployment Framework always processes entire BizTalk applications, not individual artifacts within an application. If you want to deploy just a specific DLL, you'll have to handle it another way.

Thanks,
Tom
May 29, 2014 at 8:57 AM
Thanks for the response.

Yes both are BizTalk projects.
Consider a scenario where there is a change request in "POToInvoice.btm" file in HellWorld project. I just want to deploy HelloWorld.dll using BTDF and do not want to touch CallOrchestration.dll at all. Is it doable using BTDF?
Coordinator
May 29, 2014 at 2:40 PM
No, the Deployment Framework always deploys/undeploys an entire application and is not set up to deploy individual pieces. You'd have to handle individual DLL updates with gacutil.exe and host instance restarts (assuming just a C# code or map change).

Thanks,
Tom
May 30, 2014 at 12:48 PM
Thanks for your response.

I have a scenario that a solution contains more than 60 biztalk projects. I've created a BTDF project which is associated with the solution. Now, requirement is that I need to change artificats in three projects. Now I want to promote only these three project means dlls of these three projects to UAT environment using BTDF set up. We've have been deploying manually by putting dlls into GAC and updating resources in Biztalk server administration console. This is the first time that we are using BTDF. So, please let us know the steps of how to automate the deploy using BTDF.
Coordinator
Jun 4, 2014 at 5:05 AM
Again, the Deployment Framework for BizTalk deploys entire BizTalk applications, not bits and pieces. If all 60 of your BizTalk projects end up in one BizTalk application, then the Deployment Framework will always deploy all 60 at once.

Here's a blog on a more complicated way to structure things to accomplish a more granular deployment (unsupported).

Thanks,
Tom