Unity Container异常——在这个版本的runtime中,你不能在每个动态程序集中有一个以上的动态模块

Unity Container exception – You cannot have more than one dynamic module in each dynamic assembly in this version of the runtime

我有一个项目需要从 .NET Framework 迁移到 .NET Core。迁移后我注意到一个异常 –

Unity.Exceptions.ResolutionFailedException HResult=0x80131500
Message=Resolution of the dependency failed, type = 'LanDocs.ExchangeSystem.Server.Interfaces.IExchangeDataHandler', name = '(none)'. Exception occurred while: while resolving. Exception is: InvalidOperationException - You cannot have more than one dynamic module in each dynamic assembly in this version of the runtime.

可能是什么问题以及如何解决?

我自己弄明白了,并决定在这里分享解决方案,因为我在努力解决问题时没有发现任何有用的东西。 问题在于策略注入——一旦我删除了整个部分,一切都运行良好。 但问题是 nuget 包的版本。我有 Unity.Interception 版本 5.5.3 和 Unity 版本 5.8.6。将两个版本都更改为 5.11.1 后,.NET Core 上一切正常。