Pregunta

Estoy usando el Castillo de Windsor para la inyección de dependencias en mi proyecto de prueba.Estoy tratando de crear una instancia de una de mis 'Repositorio' clases."Funciona bien en mi máquina", pero cuando voy a ejecutar un programa nocturno de construir en TFS, mis pruebas no son capaces de cargar dijo que las clases.

private static readonly WindsorContainer _container = new WindsorContainer(new XmlInterpreter());


    public void MyTestInitialize()
    {
        var testRepository = (IBogusRepository)_container[typeof(IBogusRepository)];

    }

xml de configuración:

<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>

Cuando me de la cola de una nueva construcción que produce el siguiente mensaje:

No se puede crear una instancia de la clase Example2008.Prueba.ActiveProductRepositoryTest.Error:Sistema.De configuración.ConfigurationException:El nombre del tipo Example2008.Repositorio.LALALALALA, Example2008.Repositorio podría no ser encuentra.

Castillo.Windsor.El instalador.DefaultComponentInstaller.ObtainType(String typeName) Castillo.Windsor.El instalador.DefaultComponentInstaller.SetUpComponents(IConfiguration[] configuraciones, IWindsorContainer contenedor) Castillo.Windsor.El instalador.DefaultComponentInstaller.El Programa De Instalación(IWindsorContainer contenedor, IConfigurationStore de la tienda) Castillo.Windsor.WindsorContainer.RunInstaller() Castillo.Windsor.WindsorContainer..cto r(IConfigurationInterpreter intérprete) Example2008.Prueba.ActiveProductRepositoryTest..cctor() en d:\Code_Temp\Example Proyecto Cada Noche\Fuentes\Example2008.Prueba\ProductRepositoryTest.cs:la línea 19

A partir de este mensaje, parece que mi configuración es correcta (se puede ver que quiero crear una instancia de la clase concreta 'LALALALALA', por lo que el xml de configuración, evidentemente, ha sido de color rojo correctamente)

Creo que tengo mi dependencias correctamente configurado así (ya que funciona a nivel local, incluso si yo limpio la solución y la reconstrucción).

Los pensamientos?

(el uso de VS2008, TFS 2008.Net 3.5, el Castillo de 1.03, por cierto)

¿Fue útil?

Solución

Que es...interesante.He encontrado esta entrada de blog que puede ayudar a su problema. Parece MSTest es usar eso como su directorio de trabajo, lo cual es molesto, por decir lo menos.El blog muestra cómo cambiar el directorio, de modo que usted puede tener resultados consistentes.Me gustaría también hacer un poco de búsqueda en Google para averiguar si una solución más elegante que existe.

Otros consejos

Suena como el ensamblado que contiene el repositorio de implementaciones de falta desde el directorio bin (o donde sea que su ejecución directorio de la construcción).

En primer lugar, comprobar para ver si la asamblea existe en el servidor de generación de la ejecución de directorio.

Si existe, entonces me gustaría comprobar para asegurarse de que la versión de la asamblea es la de la derecha, es decir,tiene el repositorio de la aplicación en el mismo espacio de nombres, etc.

Puede ser que tu servidor está en ejecución/construcción de los objetos en algún otro lugar de donde VS es la ejecución y/o edificio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top