テストプロジェクトでは、依存性注入にCastleWindsorを使用しています。'Repository'クラスの1つにインスタンスを作成しようとしています。「自分のマシンでは正常に動作します」が、TFSでナイトリービルドを実行すると、テストで上記のクラスを読み込めません。
private static readonly WindsorContainer _container = new WindsorContainer(new XmlInterpreter());
public void MyTestInitialize()
{
var testRepository = (IBogusRepository)_container[typeof(IBogusRepository)];
}
xml構成:
<castle>
<components>
<component id="primaryBogusRepository" type="Example2008.Repository.LALALALALA, Example2008.Repository" service="Example2008.Domain.Repository.IBogusRepository, Example2008.Domain" />
<component id="primaryProductRepository" type="Example2008.Repository.ProductRepository, Example2008.Repository" service="Example2008.Domain.Repository.IProductRepository, Example2008.Domain" />
</components>
</castle>
新しいビルドをキューに入れると、次のメッセージが表示されます。
クラスExample2008.Test.ActiveProductRepositoryTestのインスタンスを作成できません。エラー:System.Configuration.ConfigurationException:タイプ名Example2008.Repository.LALALALALA、Example2008.Repositoryが見つかりませんでした。
Castle.Windsor.Installer.DefaultComponentInstaller.ObtainType(String typeName)Castle.Windsor.Installer.DefaultComponentInstaller.SetUpComponents(IConfiguration [] configuration、IWindsorContainer container)Castle.Windsor.Installer.DefaultComponentInstaller.SetUp(IWindsorContainer container、IConfigurationStore store)Castle.Windsor .WindsorContainer.RunInstaller()Castle.Windsor.WindsorContainer..ctor(IConfigurationInterpreterinterpreter)Example2008.Test.ActiveProductRepositoryTest..cctor()in d:\ Code_Temp \ Example Project Nightly \ Sources \ Example2008.Test \ ProductRepositoryTest.cs:line 19
このメッセージから、私の構成は正しいようです(具象クラス「LALALALALA」をインスタンス化したいことがわかるので、xml構成は明らかに正しく赤くなっています)
依存関係も正しく設定されていると思います(ソリューションをクリーンアップして再構築しても、ローカルで機能するため)。
何かご意見は?
(ちなみに、VS2008、TFS 2008.Net 3.5、Castle 1.03を使用)