static int Main(string[] args)
        {
            bool useDevelopmentStorage = (args.Length >= 3) && (args[2] == DEVSTORAGE_ACCOUNT_NAME);

            if ((useDevelopmentStorage && args.Length != 3) || (!useDevelopmentStorage && args.Length < 4))
            {
                Console.WriteLine();
                Console.WriteLine("Uploads a virtual hard disk (VHD) file to Windows Azure page blob service.");
                Console.WriteLine();
                Console.WriteLine(
                    "usage: {0} {1} {2} {3} {4}", 
                    Assembly.GetEntryAssembly().GetName().Name.ToUpper(), 
                    PARAMETER_FILE_PATH, 
                    PARAMETER_BLOB_URI, 
                    PARAMETER_ACCOUNT_NAME, 
                    PARAMETER_ACCOUNT_KEY);
                Console.WriteLine();
                Console.WriteLine("  {0,-12} - path to virtual hard disk (VHD) file", PARAMETER_FILE_PATH);
                Console.WriteLine("  {0,-12} - destination page blob relative URI (i.e. container/blobname)", PARAMETER_BLOB_URI);
                Console.WriteLine("  {0,-12} - storage account name (use {1} for storage emulator)", PARAMETER_ACCOUNT_NAME, DEVSTORAGE_ACCOUNT_NAME);
                Console.WriteLine("  {0,-12} - storage account primary key (omit for storage smulator)", PARAMETER_ACCOUNT_KEY);
                Console.WriteLine();
                return 1;
            }

            try
            {
                CloudStorageAccount account;
                if (useDevelopmentStorage)
                {
                    account = CloudStorageAccount.DevelopmentStorageAccount;
                }
                else
                {
                    string connectionString = String.Format("DefaultEndpointsProtocol=http;AccountName={0};AccountKey={1}", args[2], args[3]);
                    account = CloudStorageAccount.Parse(connectionString);
                }

                VhdCloudDrive drive = new VhdCloudDrive(args[0]);
                drive.Upload(account, args[1]);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error uploading virtual hard disk (VHD) file. {0}\n", e.ToString());
            }

            return 0;
        }
        static int Main(string[] args)
        {
            bool useDevelopmentStorage = (args.Length >= 3) && (args[2] == DEVSTORAGE_ACCOUNT_NAME);

            if ((useDevelopmentStorage && args.Length != 3) || (!useDevelopmentStorage && args.Length < 4))
            {
                Console.WriteLine();
                Console.WriteLine("Uploads a virtual hard disk (VHD) file to Windows Azure page blob service.");
                Console.WriteLine();
                Console.WriteLine(
                    "usage: {0} {1} {2} {3} {4}",
                    Assembly.GetEntryAssembly().GetName().Name.ToUpper(),
                    PARAMETER_FILE_PATH,
                    PARAMETER_BLOB_URI,
                    PARAMETER_ACCOUNT_NAME,
                    PARAMETER_ACCOUNT_KEY);
                Console.WriteLine();
                Console.WriteLine("  {0,-12} - path to virtual hard disk (VHD) file", PARAMETER_FILE_PATH);
                Console.WriteLine("  {0,-12} - destination page blob relative URI (i.e. container/blobname)", PARAMETER_BLOB_URI);
                Console.WriteLine("  {0,-12} - storage account name (use {1} for storage emulator)", PARAMETER_ACCOUNT_NAME, DEVSTORAGE_ACCOUNT_NAME);
                Console.WriteLine("  {0,-12} - storage account primary key (omit for storage smulator)", PARAMETER_ACCOUNT_KEY);
                Console.WriteLine();
                return(1);
            }

            try
            {
                CloudStorageAccount account;
                if (useDevelopmentStorage)
                {
                    account = CloudStorageAccount.DevelopmentStorageAccount;
                }
                else
                {
                    string connectionString = String.Format("DefaultEndpointsProtocol=http;AccountName={0};AccountKey={1}", args[2], args[3]);
                    account = CloudStorageAccount.Parse(connectionString);
                }

                VhdCloudDrive drive = new VhdCloudDrive(args[0]);
                drive.Upload(account, args[1]);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error uploading virtual hard disk (VHD) file. {0}\n", e.ToString());
            }

            return(0);
        }