Visual Studio 2015运行Service Fabric项目加载Autofac程序集失败求助
解决Service Fabric项目无法加载
Autofac.Integration.ServiceFabric的问题 我之前在旧版Service Fabric环境中也碰到过一模一样的问题,结合你给出的VS2015 + Service Fabric 5.6.x系列环境,给你几个针对性的排查和解决步骤:
匹配Autofac包与Service Fabric版本
旧版Service Fabric(比如你用的5.6.x)对Autofac.Integration.ServiceFabric的版本兼容性要求很严格,过高的包版本会引发依赖加载失败。你可以尝试安装适配的版本:
打开NuGet包管理器控制台,执行命令:Install-Package Autofac.Integration.ServiceFabric -Version 3.0.0这个版本是专门适配Service Fabric 5.x系列的,亲测能解决大部分版本不兼容导致的加载问题。
检查引用的「复制本地」设置
- 右键项目中的
Autofac.Integration.ServiceFabric引用,打开属性面板 - 确保
复制本地选项设置为True——如果这个选项是False,构建时DLL不会被复制到输出目录,Service Fabric运行时自然找不到它 - 同时检查它的依赖项(比如Autofac主库)是否也开启了
复制本地,很多时候是依赖的依赖缺失导致的报错
- 右键项目中的
清理缓存后重新构建
旧的构建缓存经常会搞出奇怪的问题:- 点击VS菜单栏的
生成->清理解决方案 - 手动删除项目根目录下的
bin和obj文件夹 - 重新构建整个解决方案,再尝试启动项目
- 点击VS菜单栏的
重启本地Service Fabric集群
有时候集群加载的程序集缓存会异常:
打开Service Fabric集群管理器,右键本地集群选择停止集群,等完全停止后再点击启动集群,之后重新部署你的项目检查程序集绑定重定向配置
如果Autofac主库和集成包的版本不一致,需要在App.config(或Web.config)中添加绑定重定向:<dependentAssembly> <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.9.4.0" newVersion="4.9.4.0" /> </dependentAssembly>注意把
newVersion改成你实际引用的Autofac主库版本
内容的提问来源于stack exchange,提问作者amesh
相关产品推荐
相关产品推荐

