When you deploy assemblies that have dependencies on other assemblies, you must deploy the assemblies in reverse order of dependency. You can start with the independent assemblies and end with the dependent assemblies. If you do not, your deployment fails.
If your deployment fails, refer to the list of dependencies in the assembly log file to verify that you are deploying assemblies in the correct order.
For example, suppose you have three assemblies, Assembly_A, Assembly_B, and Assembly_C. Assembly_A is dependent on Assembly_B. Assembly_B is dependent on Assembly_C. When you deploy these assemblies, you must first deploy Assembly_C, then deploy Assembly_B, and lastly deploy Assembly_A.
Deploying assemblies in reverse order of dependency is critical because when an assembly is deployed, references from the resources in the assembly are checked to one level of depth.
For example, Assembly_A depends on Assembly_B, which in turn depends on Assembly_C. When you deploy Assembly_A, the deployment tool checks for the presence of Assembly_B that is one level down. Assembly_C is two levels down and is not checked because the deployment tool would have already verified the Assembly_C dependency when you deployed Assembly_B. If a referenced assembly is not in the Configuration database when you deploy the assembly that references it, the deployment fails.
If the referenced assemblies are not already in the database, the deployment tool returns an error.
Note When the deployment tools reference resources to one level, you must have installed the referenced assemblies on the server to which you deployed the assemblies.
See Also
Assembly Deployment at BizTalk Project Level or BizTalk Solution Level
Assembly Identification