升级Azure SDK 2.9后VS2015出现CloudServices58构建错误求助
解决Azure SDK 2.9 + VS2015中CloudServices58错误(无法加载Caching导入模块)
我之前帮开发者处理过一模一样的问题,这本质是因为Azure SDK 2.9正式移除了对旧版Caching模块的内置支持,而VS2015的Cloud Services构建工具链会去当前SDK的指定目录查找该模块,找不到就抛出CloudServices58错误;注释掉<Import moduleName="Caching" />后虽然能构建,但VS会检测到角色依赖的模块缺失,所以Roles文件夹会出现黄色标记。
下面给你几个可行的解决办法,从长期最优到临时兼容的都有:
方案1:迁移到Azure Redis Cache(推荐长期方案)
旧的Azure Caching模块已经被官方弃用,微软现在主推Azure Redis Cache作为缓存服务,这也是更稳定、功能更丰富的选择。具体步骤:
- 删掉
ServiceDefinition.csdef中的<Import moduleName="Caching" />行 - 在项目中安装
StackExchange.RedisNuGet包(这是Redis的官方客户端库) - 把代码里原有的Caching相关逻辑,替换为Redis的API调用
- 去Azure门户创建一个Redis Cache实例,把连接字符串配置到项目的
ServiceConfiguration.cscfg或者web.config/app.config中
方案2:手动复制Caching模块文件(临时兼容方案)
如果暂时不想迁移代码,可以手动把旧SDK里的Caching模块文件补到SDK 2.9的目录里:
- 找到你之前安装的Azure SDK 2.8版本的目录,默认路径是
C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.8\bin\plugins\Caching - 把整个
Caching文件夹复制到SDK 2.9的对应路径:C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\ - 重启VS2015,重新构建项目,此时
ServiceDefinition.csdef里的Caching导入可以保留,Roles文件夹的黄色标记也会消失
方案3:回退项目的SDK版本(不推荐)
如果上面两种方法都不想尝试,可以暂时把项目的Azure SDK版本回退到2.8:
- 右键你的Cloud Services项目 → 属性 → 应用程序标签页 → 目标Azure SDK版本,选择2.8
- 重新构建项目,错误和黄色标记都会消失,但这只是权宜之计,毕竟升级SDK是为了使用新特性,长期来看不建议停留在旧版本
补充说明:Azure SDK 2.9开始移除旧Caching模块是因为该服务已经被淘汰,官方不再提供维护,所以优先推荐方案1进行迁移,避免后续遇到更多兼容性问题。
内容的提问来源于stack exchange,提问作者Niklank
相关产品推荐
相关产品推荐

