为什么Azure实例上不存在某些特定于Azure的程序集?

时间:2012-05-23 15:14:19

标签: .net deployment azure assemblies gac

Azure角色可能需要一组特定于Azure的.NET程序集,如Microsoft.WindowsAzure.ServiceRuntimeMicrosoft.WindowsAzure.StorageClient。原来后者是not in the GAC on Azure instances因此我必须设置"复制本地" to" True"在Visual Studio项目中,以便它进入服务包并部署到Azure。如果我不这样做,那么程序集就不存在了,缺少的依赖将阻止我的角色启动。

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

是否有充分的理由说明为什么关键程序集不会出现在Azure实例GAC中,我必须随身携带我的服务包?

2 个答案:

答案 0 :(得分:3)

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

Azure不专用于仅运行.NET代码。 People use it for other platforms,例如Java,PHP,node.js,python等。在VM角色实例中添加特定于.NET Azure实现的程序集是没有意义的。

是的 - 当我第一次使用Azure时,这也是一个烦恼,但是如果您将此内部部署发布到没有Azure SDK的计算机上,情况也是如此。

答案 1 :(得分:0)

  
    

是否有充分的理由说明为什么关键程序集不会出现在Azure实例GAC中,我必须随身携带我的服务包?

  

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

最诚挚的问候,

徐明。