This guide shows how to deploy a COM object consisting of a single .dll file to a Windows Azure role using the start-up task mechanism.
Now I have a COM object that depends on several hundred other files – .dll files (I build them myself as well) and some binary data required for its operation that need to be deployed as a directory tree. Including that into the role project (as it is done for the single file in the guide) seems rather dumb – those files don’t belong to the role functionality, instead the role just depends on the COM object.
How do I deploy a huge subtree containing the COM object and whatever it depends on onto Windows Azure most conveniently?
One popular technique is to store those files in blob storage. Two ways to do this:
With an elevated startup task, you can copy down the file(s) and install your COM component.
Option #2 will likely result in a quicker bootup time, since it’s a single copy, and it will have less storage transactions. You’ll just need to bundle a zip application (or store that in a separate blob.
Nate Totten built a multi-tenant web role for Windows Azure, and the technique he uses for deploying a website involves option #2 above (although not as a startup task). I suggest looking at that project to see how the zip file is copied to local storage and unzipped.
EDIT: One more option is to look at AzureRunMe, an open source tool for unzipping and launching apps in a Windows Azure role.