BizTalkInstaller: a BTSICustomAction replacement
In developing with BizTalk, I've had clients needing simple to use MSI packages instead of "complex" NAnt scripts. Creating MSI packages to deploy a BizTalk solution is fairly simple, but using the BTSICustomAction to deploy the contained assemblies and bindings is somewhat of a less trivial task.
The issues my clients encountered when using MSI packages created using BTSICustomAction are:
The Custom Action I've created is used in exactly the same manner the BTSICustomAction is used, it takes a parameter DEPLOY, which, when set to true tells the BizTalkInstaller class to actually deploy (install the assemblies and run the binding files) the components. If the parameter is missing or not set to "true", contained assemblies are installed into the GAC, but no binding files are executed.
Also, when uninstalling, all files installed without DEPLOY=true will still be checked for any bindings which might keep them from being removed.
Using the component is easy:
Note: altering binding files before deployment should be used with caution, as you have full control of each aspect of the binding file.
UPDATED: NEW DOWNLOAD LOCATION
The Custom Action library can be downloaded here
As always, full sourcecode is included and feedback is very welcomed!
The issues my clients encountered when using MSI packages created using BTSICustomAction are:
- Inability to edit binding files before actual deployment, hence needing multiple MSI packages for each server configuration
- Not all assemblies are removed when uninstalling, due to these assemblies being either used by active/suspended instances of Orchestrations or having bindings with Orchestrations not in unenlisted state.
- No feedback within the MSI packages about the deployment of the contained components. Having to manually iterate through all logfiles created.
The Custom Action I've created is used in exactly the same manner the BTSICustomAction is used, it takes a parameter DEPLOY, which, when set to true tells the BizTalkInstaller class to actually deploy (install the assemblies and run the binding files) the components. If the parameter is missing or not set to "true", contained assemblies are installed into the GAC, but no binding files are executed.
Also, when uninstalling, all files installed without DEPLOY=true will still be checked for any bindings which might keep them from being removed.
Using the component is easy:
- Create a new "Setup Project"
- Add your components to the project
- Add your exported bindings to the project
- Add the custom action BizTalkInstaller to each section in the Custom Action Editor, setting "CustomActionData" within the Install section to "/DEPLOY=true" if you want bindings to be executed, or nothing if you don't want that.
- btstd.xml (contains the standard BizTalk assembly list)
- BindingSchema.xsd (contains the schema information for binding files)
Note: altering binding files before deployment should be used with caution, as you have full control of each aspect of the binding file.
UPDATED: NEW DOWNLOAD LOCATION
The Custom Action library can be downloaded here
As always, full sourcecode is included and feedback is very welcomed!
10 Comments:
Very nice. I had a similar idea but also to add extra MSI windows to configure/update the locations in the bindings xml and also to call an adapter to validate a location upon changing.
Best regards,
Gregory (Gregory@eai.be)
By Anonymous, at 11:33 AM
It was cool stuff what most people are looking for. Can you include the assembly and file to be excluded in the Setup project when we add the BizTalkInstaller. Because lot of them are BizTalk assembly(Out of box).
By Anonymous, at 5:07 PM
This comment has been removed by a blog administrator.
By Chris Tucker, at 7:58 PM
Excelent tool. I am haveing a problem though, my assemblies are not being added to the GAC. Looking into the source it apears that it only does this if DEPLOY=true is not set. Hmmm..
By Chris Tucker, at 8:04 PM
I would like to change the Primary Transport adress in a send port, but the fiels is disable.
Do I Have to modify the bindingschema ?
Thanks.
Catherine.
By Anonymous, at 11:34 AM
Hi Martijn,
I have modified your code and found more useful can publish this changes on the net if you allow.
Regards,
Ren
By Anonymous, at 3:08 PM
Hi martijn,
can your repost the BiztalkInsaller. I am unable to
locate the donwload.
Do you know of an MSI BiztalkInstaller that will prompt
for the send/receive ports defined in the bindings file?
Thanks,
Mike
By Anonymous, at 5:13 PM
Hi martijn,
can your repost the BiztalkInstall. I am unable to
locate the download.
By Anonymous, at 7:29 PM
Hey Martijn,
It'd be much appreciated if you could repost the code for this component.
Cheers,
Keith
By Anonymous, at 8:58 AM
Won't you wonder if somebody says he doesn't know what is a software company ? Am sure you will fall off from your chair. But believe me it is true. There still are people in third world countries who don’t know anything about software development, web application development or internet. So those who are not really aware about these buzzing things, try to find out what is a tech-world of Internet.
By Anonymous, at 5:56 PM
Post a Comment
<< Home