Azure角色可能需要一组特定于Azure的.NET程序集,如Microsoft.WindowsAzure.ServiceRuntime
和Microsoft.WindowsAzure.StorageClient
。原来后者是not in the GAC on Azure instances因此我必须设置"复制本地" to" True"在Visual Studio项目中,以便它进入服务包并部署到Azure。如果我不这样做,那么程序集就不存在了,缺少的依赖将阻止我的角色启动。
这对我没有任何意义。要么它只是一个错误,要么我不能全面了解。
是否有充分的理由说明为什么关键程序集不会出现在Azure实例GAC中,我必须随身携带我的服务包?
答案 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。因此,我们不需要执行额外的任务来使其工作。
最诚挚的问候,
徐明。