I was trying to automate the process of Azure deployment through command line. The Azure Powershell cmdlets make this job very easy.

I was facing some issues when deploying the Application on Azure using commandline( using CSPack + Azure cmdlets). Some of the features on the site were functioning, specifically those that depended upon Azure configuration files. The same worked with VS 2010 package and deployment.

I realized that the package I was creating with CSPack was different from what VS 2010 was creating.

The first step i took was to reproduce the issue on Dev Fabric.
I was luck enough to reproduce the same issue in Dev Fabric if i deployed the package file created using CSPack.
What i realized was that the WebRole class which should be called by framework whenever the Azure Framework initializes was not being called for some strange reason. I had called some initialization code such as SetConfigurationSettingPublisher in WebRole.cs.
This was causing call made later to fail.
I did some debugging for sometime before it just struck me that the CSPack has an argument that takes the Entry-Point Dll.
Once i provided the entry point dll argument to CSPack and deployed again things worked like a charm.

The take away from this exercise was
Azure requires us to provide Entry-Point DLL for a Worker Role but not for Web. But in case you create your own Entry Point class (deriving from RoleEntryPoint) do remember to register the assembly for the entry point class else the framework would take a default implementation.

Happy Coding