Moq.CastleProxyFactory'无法加载文件或程序集'Castle.Core

时间:2018-09-24 13:02:32

标签: c# linq unit-testing moq

当我尝试像这样设置moq对象时:

mock.Setup(reader => reader.listOFs(1)).Returns(new List<IIAM_OF_Event>() { new IIAM_OF_Event() { ID = 11 } }.AsQueryable());

它抛出

System.TypeInitializationException:'Moq.ProxyFactory'的类型初始值设定项引发了异常。 ---

  

System.TypeInitializationException:'Moq.CastleProxyFactory'的类型初始值设定项引发了异常。 ---> System.IO.FileLoadException:无法加载文件或程序集“ Castle.Core,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)---> System.IO.FileLoadException:无法加载文件或程序集“ Castle.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)

IIAM_OF_Event是一个Linq表。

1 个答案:

答案 0 :(得分:1)

不知何故,测试中集成的一个组件要求的是Castle.Core 4.1.0.0版本,但版本4.0.0.0已包含在构建中。

我将其添加到配置文件中

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
...