.NET Framework 4.7.2与Microsoft Enterprise Library v5是否兼容?
问题解答:Enterprise Library 5.0与.NET Framework 4.7.2兼容性及加载错误处理
核心结论
Enterprise Library 5.0和.NET Framework 4.7.2本身不存在直接的兼容性阻断问题,你遇到的FileNotFoundException属于程序集加载层面的问题,而非版本兼容冲突。
具体排查与解决步骤
- 检查程序集复制本地属性:右键项目中引用的
Microsoft.Practices.EnterpriseLibrary.Data,确认复制本地属性设置为True。升级目标框架后,引用的复制行为可能被重置,导致运行时无法在输出目录找到对应dll。 - 添加/检查程序集绑定重定向:在
app.config或web.config的<runtime>节点下添加绑定重定向配置,强制运行时加载指定版本的程序集,示例如下:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.505.0" newVersion="5.0.505.0" /> </dependentAssembly> </assemblyBinding> </runtime>
- 验证依赖完整性:Enterprise Library 5.0.Data依赖
Microsoft.Practices.Unity、Microsoft.Practices.ServiceLocation等基础组件,需确保这些依赖也已正确引用且复制本地属性为True,升级框架可能导致这些依赖的引用状态异常。 - 清理重建项目:手动删除项目的
bin和obj目录,执行解决方案清理后重新编译,避免旧框架下的编译残留文件干扰运行时加载逻辑。
内容的提问来源于stack exchange,提问作者sircrisp
相关产品推荐
相关产品推荐

