BizTalk can't see your schema? Is it deployed? Is it really really deployed? Are you sure?
This is a public service message for any tyro BizTalk developers (like us) who are getting a HAT message along the lines of Loading document specification [some schema] from assembly [some assembly] failed. Verify that the schema is deployed properly and that the schema assembly implements the document spec.
Scenario: You've got a nice remote BizTalk host server installed and running. You're developing BizTalk projects locally on your PC in Visual Studio 2003. You're using VS2003 to deploy those projects to that remote server. The project builds fine. The project deploys fine. The receive ports and send ports are all fine and dandy.
You drop a test message into a receive port. It disappears into the messagebox. You go and wait by the send port with bated breath. Nothing appears. You wait a little longer. The absence of messages frustratingly persists.
Finally you accept that something might have gone wrong, so you open the HAT. You check out the Messages Received in Past Day. There it is: 'Unparsed Interchange'. You open the message flow and you see that BizTalk in all defiance of common sense and decency has been unable to find a schema to match your message.
BizTalk is obviously wrong, because you strong named your assembly and deployed it. You even made sure that the destination BizTalk server was correctly set in the project properties.
Let me interject at this point. It's more than possible that your carefully crafted schema made it to the remote server, but simply didn't get into the remote GAC. You see, the Deploy functionality in Visual Studio 2003 can't do a remote GAC install. Instead it helpfully installs the assembly in your local GAC, right where you don't really need it.
So BizTalk wasn't lying after all. It can't understand your message because the schema isn't in the GAC.
The solution? To get the BizTalk assembly (and any non-BizTalk dependency assemblies for that matter) into the GAC on the BizTalk server, you need to run gacutil.exe, btsdeploy.exe or the BizTalk Deployment Wizard locally on the server.
It's all in the documentation, apparently. Here are some helpful links:
How Assembly Deployment Works
BizTalk Power Toys. You need these.
A BizTalk Auto Deploy project at GotDotNet