Geeks With Blogs
Jennifer Zouak JENNIFER · ZOUAK's · BizTalk · and · .NET · column

Installing a BizTalk App can be quite a challenge. You have options of

1) Manual, lots of documentation needed. But then you were going to create docs anyway, right? This is good when you only need to install it once.

2)  BizTalk-generated MSI. This is simple and quick to produce. My main issue is that this is not customizable with regard to the application name and product version (think Add/Remove programs) nor can you specific the installation folder. Another huge problem is that *if* the deployment BizTalk is configured differently with regard to adapters, hosts, etc than the build machine, then the installation completely fails.

3) Completely automated, wizards or build scripts.  This is obviously preferrable, but the tools given are not up to the task. Hence this method requires development time to encode the bindings, build the install script, test, etc.  There are some frameworks out there too. 

Here are the challenges

The main hurdle here is the bindings. For custom integrations, typically, we do not know the Production bindings up front and they also are very subject to change. And they differ from the pre-Prod bindings and the QA bindings, etc. Another issue is that the passwords are not preserved by the bindings, so this needs to be addressed somehow.

We also usually need application settings in our biztalk config file(s), helper classes into the GAC, registry keys, COM components registered, etc.

I spent some time to try to use Visual Studio's basic setup Wizard project to create a nice installer for one of our common BizTalk projects. I created a super dooper custom action which would invoke "BTSTask.exe" and do stuff like export bindings, install assemblies, etc.

This worked well for me, in test and for the first client. For the second client, it mysteriously failed. It turns out that sometimes when you install and you aren't on a console (i.e. physically at the machine) then the installer will run the "Custom Action" using the local system credentials, rather than the logged in user. Of course, for BizTalk you need to be in the BizTalk admin group in order to configure it.  I did a bit of poking around and came upon the installation attribute "TSAware" (TerminalServerAware) which *if set* can apparently prevent this change in user account. Unfortunately in Visual Studio setup project, this attribute is not anywhere to be found. At this point, I'm kinda stuck since I can't go changing the security setup at client sites -- so we are back to my "favorite" manual method.

Next I will look into the available extensions to msbuild scripts. These can have the TSAware attribute set, so should be able to overcome the problem...

 -Jennifer Zouak

Posted on Thursday, November 15, 2007 8:31 AM BizTalk , BizTalk Adapter Development , .Net | Back to top

Comments on this post: BizTalk Application Custom Installer with BTSTask notes

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Jennifer Zouak | Powered by: