2

我正在开发一个在 .NET 4.5 项目中使用 NServiceBus 的示例消息处理程序服务。只要使用 DefaultBuilder,它就可以正常工作。要在添加对 Autofac 的引用并将 DefaultBuilder 更改为 AutofacBuilder 后立即使用 Autofac 为其他服务配置容器,我得到如下所示的异常。对 NServiceBus.ObjectBuilder.Autofac.dll 的引用已经在项目中。

启动端点时出现异常,已记录错误。原因:无法加载文件或程序集“Autofac,Version=2.6.1.841,Culture=neutral,PublicKeyToken=17863af14b0044da”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

警告:比较程序集名称导致不匹配:主要版本
错误:无法完成程序集设置(hr = 0x80131040)。探测终止。

我究竟做错了什么?我已经尝试过 Nuget,手动参考,将目标框架更改为 4.0。

编辑

添加绑定重定向后,错误消息更改为

Method not found: 'Autofac.Builder.IRegistrationBuilder`3<!0,!1,!2>
Autofac.Builder.IRegistrationBuilder`3.PropertiesAutowired(Autofac.PropertyWiringFlags)'.

at NServiceBus.Hosting.GenericHost.Start() in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting\GenericHost.cs:line 43
at NServiceBus.Hosting.Windows.WindowsHost.Start() in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting.Windows\WindowsHost.cs:line 55
at NServiceBus.Hosting.Windows.Program.<>c__DisplayClass8.<Main>b__4(WindowsHost service) in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting.Windows\Program.cs:line 97
at Topshelf.Internal.ControllerDelegates`1.StartActionObject(Object obj) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ControllerDelegates.cs:line 17
at Topshelf.Internal.IsolatedServiceControllerWrapper`1.<>c__DisplayClass2.<set_StartAction>b__1(TService service) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\IsolatedServiceControllerWrapper.cs:line 65
at Topshelf.Internal.ServiceController`1.<.cctor>b__1(ServiceController`1 sc) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ServiceController.cs:line 35
at Magnum.StateMachine.LambdaAction`1.Execute(T instance, Event event, Object parameter) in :line 0
at Magnum.StateMachine.EventActionList`1.Execute(T stateMachine, Event event, Object parameter) in :line 0

应用程序配置

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
  </assemblyBinding>
</runtime>
4

1 回答 1

3

NServiceBus v3.3.5 使用 Autofac v2.6.1.841,如果您引用不同的版本,则需要添加绑定重定向。

于 2013-03-04T23:22:41.203 回答