This guide显示了如何使用启动任务机制将包含单个.dll文件的COM对象部署到Windows Azure角色。
现在我有一个COM对象依赖于几百个其他文件 - .dll文件(我自己也构建它们)和一些需要部署为目录树的操作所需的二进制数据。将其包含到角色项目中(因为它是针对指南中的单个文件所做的)似乎相当愚蠢 - 这些文件不属于角色功能,而角色只取决于COM对象。
如何最方便地将包含COM对象及其依赖的巨大子树部署到Windows Azure中?
答案 0 :(得分:2)
一种流行的技术是将这些文件存储在blob存储中。有两种方法可以做到这一点:
使用提升的启动任务,您可以复制文件并安装COM组件。
选项#2可能会导致更快的启动时间,因为它是一个副本,并且它将具有更少的存储事务。您只需要捆绑一个zip应用程序(或将其存储在单独的blob中。
Nate Totten为Windows Azure构建了一个多租户Web角色,他用于部署网站的技术涉及上面的选项#2(尽管不是作为启动任务)。我建议查看that project以查看如何将zip文件复制到本地存储并解压缩。
编辑:还有一个选项是查看AzureRunMe,这是一个用于在Windows Azure角色中解压缩和启动应用的开源工具。
答案 1 :(得分:2)
如果文件的变化与角色的更改过程无关,那么我会同意David的建议 - 我会将它们全部放在Blob存储中的zip中,然后使用启动任务下载并安装文件
但是,如果文件不会独立于角色中的文件进行更改,那么我会将文件打包为.zip,然后运行启动过程以从该角色解压缩并安装这些文件。这种方法的一个优点是项目非常直接在“devops”中部署和版本 - 它对Blob存储没有任何依赖性。
最后一个选项是您还可以将DLL放在Azure驱动器中 - 您可以在角色启动期间安装该驱动器并从该驱动器安装COM对象。