A recent problem we’ve come in to in deploying BizTalk solutions was that there seemed to be some kind of hard-coded path in the MSI that was created using the BizTalk Administrator. Almost as an after thought, running the MSI would eventually present the following error:
An error occurred while attempting to install the BizTalk application: Change requests failed for some resources.
BizTalkAssemblyResourceManager failed to complete end type change request.
Unable to add\update the assembly with LUID=”[My Assembly Name], Version=1.0.0.0, Culture=neutral, PublicKeyToken=8def881f8d2f6324”.
Failed to create file “D:\[Some Directory]\[Some Assembly].dll”.
Could not find a part of the path “D:\ [Some Directory]”.
Could not find a part of the path “D:\ [Some Directory]”.
After a good bit of head scratching and (at the time) no useful search results on Google we noticed the ‘Resources’ view in the BizTalk administrator (see below). In here is a list of all of the assemblies that you have deployed and are using in BizTalk. If look at the Destination Location column you might notice a hard-coded path (although not always the case).
This is the path the BizTalk Administrator uses for the destination of resources on the BizTalk box where you are going to install the application.
If the server that you are deploying to can not create that path, then the deployment will fail and the MSI will (for the most part) roll back. What you need to do is change the destination path from:
D:\MyFolder\MyAssembly.dll
to
%BTAD_InstallDir%\MyAssembly.dll
This will then ask the assemblies/resources to install in the target directory specified at the time the MSI is installed.
Problem avoided.