I received the following e-mail from Joe, regarding a bug I found in BizTalk 2004 when developing maps with XSLT:
Hi! I was reading the post on ureader.com regarding a problem of not having XSLT changes show up when deploying a BT04 project when I saw your response (#2 of your listed solutions) about creating ‘a link from the root note of the source map to the root note of the destination map and delete the link to refresh the map.’ I was wondering if I could get a little clarification on exactly how you created the link. Any thoughts would be greatly appreciated! Thanks! -Joe
The bug Joe is talking about here relates to changes to an XSLT file (with the BizTalk map using that file in the ‘Custom XSL Path’), which do not appear when you re-deploy a project.
As an example, say you have developed a solution using custom XSLT files for your BizTalk map. You test the map in VS and everything works ok, so you go ahead and deploy the project and again, everything works as expected in the runtime environment (say the map is on a Receive Port). However, you notice that the output from the map needs a minor amendment, so you go back into your XSLT, correct the problem and test the map again from within VS – everything works fine. You re-deploy the project and test in the runtime environment and bam, the map hasn’t changed – the changes that were made to the XSLT didn’t get picked up. Huh?
I originally noticed this bug in BizTalk 2004, but have just tested against 2006 (not R2) and can confirm that it is also present in this version. I believe that the bug (?) is due to the fact that the artifact that is compiled (i.e. the map) hasn’t changed, so Visual Studio doesn’t know that the project needs to be re-compiled (the output windows tells me that ‘the project is up-to date’, even though I know I’ve changed the XSLT and it therefore isn’t).
As a work around, I suggest that you open the BizTalk map (not the XSLT) and trick VS into thinking that the map has changed – i.e. create a single link from the source to the destination document (it doesn’t matter which element) and then delete the link. VS will pickup the change and force the project (and your XSLT changes) to be re-compiled.