BTDF is a fastest way of deploying BizTalk Applications. Thanks to the creators of BTDF.
In this post, I am going to show how to use BizTalk Deployment Framework to deploy BizTalk Server 2010 Applications and IIS Virtual Directories
These simple steps give you a basic understanding of using BTDF 5.0
1. Start by Downloading and Installation BizTalk Deployment Framework 5.0 from the website http://biztalkdeployment.codeplex.com/
2. Create a simple BizTalk Solution with the following projects.
a. Schemas Project – with two schemas.
b. Maps Project – With simple transformation between schemas
c. Orchestration Project – With a simple Orchestration to receive a Message, Transform & Send the Message.
d. Pipelines Project – With a Receive Pipeline using XmlDisassembler Component.
e. C# Class Library – With a Utility class that is used in Map
3. Once you install BTDF 5 (BizTalk Deployment Framework) you will see a new Project Template added to Visual Studio. Add a new BizTalk Deployment Project to the Current Solution.
4. A Project Options window will open asking to select few properties that you need. From the properties, mark the desired options as True (A few common properties are highlighted below).
5. Once Create Project is clicked; a set of deployment files will be added to your solution.
6. However these will not be added to Visual Studio. You have to add them to Visual Studio by using Add Existing Item option.
8. The first property group is the one which controls the major settings of the deployment Process.
a. Intellisense of Visual Studio works here. You can select which all Artifacts of BizTalk would be included in the MSI File.
b. A description of each property can be found in the BTDF documentation available here.
c. Most common properties to be included will be like below.
d. Important Properties to Note
1. If you have any Custom .NET Components which are to be GACed, then you have to set IncludeComponents = True
2. If you have any virtual directories (if schema / orchestration is published as a Web/WCF service) then you have to set IncludeVirtualDirectories = True
9. Now we need to include all the Artifacts which are part of our project in the Item Group Section.
10. In the below highlighted part, the value of $(ProjectName) & $(Configuration) will be replaced with the corresponding values that you specify in PropertyGroup Section (shown in step 8) at runtime.
For example: if my schemas dll is located at “C:\Projects\BizTalkDeployment\DeploySchemas\bin\Debug” then I would specify LocationPath property as “..\DeploySchemas\bin\$(Configuration)”
11. Once BizTalk Deployment Framework generates MSI File, it will automatically import binding file and starts the application. The binding file for this purpose has to be made available to BTDF in PortBindingsMaster.xml
12. If you already have a Binding file for your Application, copy its contents and paste it in PortBindingsMaster.xml. If you don’t have a binging file already, deploy the BizTalk Application Normally, Configure it and generate the Binding File.
Note: This feature is controlled by the setting True in Property Group (step 8)
16. The MSI file will be available in ..\bin\Debug folder
Installing the BizTalk BTDF MSI file:
1. Open the MSI File & follow the steps.
2. In order to modify the EULA, you can edit the word document “Licence.rtf” as shown in Step 6 (above)
4. This will start installation of MSI to BizTalk. Provide your Windows User-Id
5. In the Next Step, Click on Browse, Go to Environment Settings – > Select any XML file. (Note: Selecting any of the File doesn’t have any impact in this example. More details on How to Use this Environment Settings file in my Next Post)
7. This will complete the Installation.
8. Application would be automatically deployed and started in Admin Console. In case of any errors, a Log file will be available in your Installation Directory – <C:\Program Files (x86)\BizTalkDeployment for BizTalk\>1.0\DeployResults
Hope this helps. See the next post on how to use SettingsFileGenerator.xml to automatically generate / use different bindings for different environments.