如何最方便地将依赖于数百个文件的本地代码库部署到Windows Azure?

本指南介绍如何使用启动任务机制将包含单个.dll文件的COM对象部署Windows Azureangular色。

现在我有一个COM对象依赖于数百个其他文件 – .dll文件(我也自己构build它们)以及一些需要部署为目录树的操作所需的二进制数据。 将它包括到angular色项目中(就像在指南中为单个文件所做的那样)似乎相当愚蠢 – 这些文件不属于angular色function,而是angular色仅取决于COM对象。

如何最方便地在Windows Azure上部署一个包含COM对象的大型子树?

Solutions Collecting From Web of "如何最方便地将依赖于数百个文件的本地代码库部署到Windows Azure?"

一种流行的技术是将这些文件存储在blob存储中。 两种方法来做到这一点:

  1. 为您的DLL和相关文件创建一个容器,并将每个文件存储在自己的blob中。
  2. 创建您的DLL和依赖关系树的zip文件,并将该zip存储在一个blob中

使用提升的启动任务,您可以复制文件并安装COM组件。

选项#2可能会导致更快的启动时间,因为它是单个副本,并且它将具有更少的存储事务。 您只需要捆绑一个zip应用程序(或将其存储在单独的blob中)。

Nate Totten为Windows Azure构建了一个多租户Web角色,他用于部署网站的技术涉及到上面的选项#2(尽管不是启动任务)。 我建议看看该项目 ,看看如何将zip文件复制到本地存储并解压缩。

编辑:另外一个选择是看AzureRunMe ,一个开源工具解压缩和启动在Windows Azure角色的应用程序。

如果这些文件将会独立于角色的更改过程而改变,那么我会同意David的建议 – 我会将它们全部放在Blob存储中的zip中,然后使用启动任务下载并安装这些文件。

但是,如果文件不会独立于角色中的文件进行更改,那么我会将这些文件打包到一个.zip文件中,然后运行启动过程以解压并安装这些文件。 这种方法的优点之一是该项目是非常直接的部署和版本在“devops” – 它没有任何依赖Blob存储。

最后一个选择是,你也可以把DLL放在一个Azure驱动器中 – 你可以挂载该驱动器,并在角色启动时从该驱动器安装COM对象。