我正在使用.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
App.Config中
<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>
答案 0 :(得分:3)
NServiceBus v3.3.5使用Autofac v2.6.1.841,如果您引用的是另一个版本,则需要添加绑定重定向。