2

.NET 4.5 プロジェクトで NServiceBus を使用してサンプル メッセージ ハンドラー サービスに取り組んでいます。DefaultBuilder が使用されている限り、問題なく動作します。Autofac への参照が追加され、DefaultBuilder が AutofacBuilder に変更された直後に Autofac を使用して他のサービスのコンテナーを構成するには、次のように例外が発生します。NServiceBus.ObjectBuilder.Autofac.dll への参照は既にプロジェクトにあります。

エンドポイントの開始時に例外が発生しました。エラーがログに記録されました。理由: ファイルまたはアセンブリ 'Autofac、Version=2.6.1.841、Culture=neutral、PublicKeyToken=17863af14b0044da' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン
ERR: アセンブリのセットアップを完了できませんでした (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>
4

1 に答える 1

3

NServiceBusv3.3.5はAutofacv2.6.1.841を使用します。別のバージョンを参照している場合は、バインディングリダイレクトを追加する必要があります。

于 2013-03-04T23:22:41.203 に答える