3

Azure 角色可能需要一组特定于 Azure 的 .NET 程序集,例如Microsoft.WindowsAzure.ServiceRuntimeMicrosoft.WindowsAzure.StorageClient. 事实证明后者不在 Azure 实例上的 GAC 中,因此我必须在 Visual Studio 项目中将“复制本地”设置为“真”,以便它进入服务包并部署到 Azure。如果我不这样做,则程序集不存在,并且缺少的依赖项将阻止我的角色开始。

这对我来说没有任何意义。要么它只是一个错误,要么我不了解全局。

是否有充分的理由说明 Azure 实例 GAC 中不存在密钥程序集,而我必须将它们与我的服务包一起携带?

4

2 回答 2

3

这些关键的 Azure 程序集不是 .NET Framework 的一部分 - 这就是它们不在 GAC 中的原因。也许将来它们会被添加到 .NET Framework 中。

Azure 并非专门用于仅运行 .NET 代码。人们将它用于其他平台,例如 Java、PHP、node.js、python 等。在 VM 角色实例中添加特定于 .NET Azure 实现的程序集是没有意义的。

是的 - 当我第一次开始使用 Azure 时,这也是一个烦恼,但如果您将这个本地发布到没有 Azure SDK 的机器上,情况也是如此。

于 2012-05-23T15:15:16.210 回答
0

是否有充分的理由说明 Azure 实例 GAC 中不存在密钥程序集,而我必须将它们与我的服务包一起携带?

我想指出,并非每个项目都需要使用存储,因此没有预先安装存储组件是有道理的。加载的程序集减少了,您获得了微小的性能改进。但是每个项目都需要与 Windows Azure 运行时集成。所以运行时程序集是预先安装的。根据我的经验,默认情况下,当我们创建 Windows Azure web/worker 角色时,存储程序集引用会自动将本地复制设置为 true。因此,我们不需要执行额外的任务来使其工作。

此致,

明旭。

于 2012-05-24T09:07:36.777 回答