0

我面临一个问题,我似乎无法解释发生了什么。

如果我AppDomain.AssemblyResolve在我的 DLL(C#) 中使用事件并且我使用实体框架,我很可能会以某种方式看到它尝试加载以下资源文件:

EntityFramework.resources, Version=6.0.0.0, Culture=fr-FR, PublicKeyToken=b77a5c561934e089

之后

EntityFramework.resources, Version=6.0.0.0, Culture=fr, PublicKeyToken=b77a5c561934e089

我不知道他们可以住在哪里,也不知道他们是否存在于某个地方。我找不到任何讨论或微软网站谈论这个。

当然,如果我在我的事件中为该资源返回 null 作为 MicrosoftAssemblyResolve事件文档中的状态,那么一切正常,但问题是我希望能够不返回 null,因为还有另一个 DLL(在 .NET 4 之前构建)这是由外部公司完成的,并且在与我的 DLL 相同的应用程序中使用,它将尝试加载程序集资源文件并引发导致应用程序崩溃的异常。

出于这个原因,我试图了解如何处理这种特殊情况并避免返回 null。

有人有任何解释为什么 Entity Framework 会尝试加载这些资源文件,以及是否有办法在不返回 null 的情况下处理这个问题aassemblyresolve

4

1 回答 1

0

我自己想通了。

解决方案很简单。

当被要求时EntityFramework.resources,只需从当前返回“已经”加载EntityFramework的实例,AppDomain而不是使用LoadFrom/Load/LoadFile方法。

希望这对将来的某人有所帮助。

于 2018-04-03T13:55:17.930 回答