4

テストアセンブリからすべての個別のインストーラーをインストールしようとすると、

 "`{"Method not found: 'Castle.MicroKernel.Registration.ComponentRegistration1<!0> Castle.MicroKernel.Registration.ComponentRegistration1.DependsOn(Castle.MicroKernel.Registration.Dependency)'."}`" 

コードがコンソールアプリケーション/Windsowsサービスから完全に実行され、2つのプロジェクトの参照が同一であるという事実にもかかわらず、次のようになります。

Castle.Core
Castle.Facilities.FactorySupport
Castle.Facilities.Logging
Castle.Facilities.QuartzIntegration
Castle.Services.Logging.NLogIntegration
Castle.Windsor

テストアセンブリがウィンザーコンテナの構築をこのように呼び出す理由を誰かが知っていますか?

   this.Container = new WindsorContainer(new XmlInterpreter())
       .Install(FromAssembly.Named("Assembly.WindowsService", 
                new CustomWindsorInstallerFactory()));

次のような「DependsOn」メソッドを参照するコードで失敗します。

container.Register(
    Component
         .For<ISftpRepository, ISftpFileStoreRepository, AbstractSftpFileStoreRepository>()
         .ImplementedBy<ConcreteSftpRepository>()
         .Properties(PropertyFilter.IgnoreAll)
         .DependsOn(
              Dependency.OnConfigValue("host", config.Host),

また:

.ConfigureFor<QuartzJob>(
      x => 
      x.DependsOn(ServiceOverride.ForKey<IService>().Eq("intraService")))

注意:メインアプリケーションで実行すると、すべてのインストールクラスが完全に機能することに注意してください。これは、単体テストを実行する場合の純粋な状況です。

助けてくれてありがとう。

4

1 に答える 1

3

デプロイ時に新しいバージョンを上書きする古いバージョンの Windsor がどこかにあるようです

于 2013-01-16T04:16:36.013 に答える