On the whole – BTSTask.exe is a great improvement over BTSDeploy.exe in 2004.
A couple of things I wouldnt mind seeing in this tool – the ability to start/stop
deployed applications.
Big Gotcha
Something I came across after my large scripting effort…..it goes something like
this….
(1) 3 biztalk applications – a ‘Core’ and Two others.
(2) For the ‘Core’ apart from Schemas, Maps, Pipelines + Orchestrations; I had 1
COM Assembly, 2 custom adapters, 4 custom functoids and 3 custom pipeline components
So a reasonable sized deployment that needed to easily be deployed into test/production.
My line of thinking was – “If I could get all the associated *.dlls deployed
into the BTS Core Application wthin Development…all would be good.”
So as we know we can go through the BTS Admin Console and add resources/files/bindings
etc. to our application (with various options), that way when we say “Export
to MSI…” it’s self contained.
The PROBLEM is in the ‘Destination Location’….
Using the BTSTask AddResource….. setting the ‘-Destination:’ parameter works a treat
(IF your destination location exists within development environment!)
Let me ellaborate….
Development:
e:\projects\<project name>\BizTalk\
– maps
– schemas etc….
Associated *.dlls – found e:\projects\<project name>\CommonBin\Release
Testing/Production:
d:\Applications\<project name>\CommonBin…etc. etc.
So the drives are different and what’s more, there is NO d-drive in Development….hmmm….I
thought.
(I didnt have a ‘demo’ project to highlight this….so I’ve removed company info from
below)
Where I want to focus is the ‘Destination Location’
These 4 assemblies are deployed using VS.NET 2005 straight from the developers desktop.
(When using BTSTask AddResource….-Destination:<loc> – loc has
to exist at time of adding and ‘exporting MSI’ – bts validates)
Export to MSI…fine MSI finally created.
Installing the MSI file in Production/Testing
Upon performing MSIEXEC /quiet /i Core.MSI FOLDER=d:\Applications\<Project
Name>\CommonBin\
I ended up getting a ‘msi package deployment’ – a guid as a foldername with
*.CAB files underneath. No *.dlls etc to be seen.
Importing Into BizTalk
Went to BTS Admin Console and did ImportApp – all looked good.
Then went to the D-Drive and found no new files?? where were my biztalk files? gac-ed
files etc?
The ones that needed Gac-ing – found copied to the GAC
The BizTalk ones Schemas, Maps etc – found in E:\projects\<project
name>\<development project path>\Bin\Deployment\…..smooth! 🙁
As far as I can tell this is attributed to the already existing ‘destination location’
within the MSI on the BizTalk artifacts.
So the reason why it’s soooooo close is that if we could override this (i.e. the above
FOLDER= parameter takes effect) then all would be sweet in going from environment
to environment.
As it stands at the moment, I’m deploying all the files to Testing building
the MSIs there and then deploying to Production with
all the correct paths hopefully.
Thought I’d save you some tears.