he escrito la siguiente prueba simple para tratar de aprender interfaz fluida del castillo de Windsor:No se pudo cargar el tipo de error de montaje
using NUnit.Framework;
using Castle.Windsor;
using System.Collections;
using Castle.MicroKernel.Registration;
namespace WindsorSample {
public class MyComponent : IMyComponent {
public MyComponent(int start_at) {
this.Value = start_at;
}
public int Value { get; private set; }
}
public interface IMyComponent {
int Value { get; }
}
[TestFixture]
public class ConcreteImplFixture {
[Test]
public void ResolvingConcreteImplShouldInitialiseValue() {
IWindsorContainer container = new WindsorContainer();
container.Register(Component.For<IMyComponent>().ImplementedBy<MyComponent>().Parameters(Parameter.ForKey("start_at").Eq("1")));
IMyComponent resolvedComp = container.Resolve<IMyComponent>();
Assert.AreEqual(resolvedComp.Value, 1);
}
}
}
Cuando ejecuto la prueba a través TestDriven.NET me sale el siguiente error:
System.TypeLoadException : Could not load type 'Castle.MicroKernel.Registration.IRegistration' from assembly 'Castle.MicroKernel, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc'.
at WindsorSample.ConcreteImplFixture.ResolvingConcreteImplShouldInitialiseValue()
Cuando ejecuto la prueba a través de la interfaz gráfica de usuario NUnit me sale:
WindsorSample.ConcreteImplFixture.ResolvingConcreteImplShouldInitialiseValue:
System.IO.FileNotFoundException : Could not load file or assembly 'Castle.Windsor, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The system cannot find the file specified.
Si abro la Asamblea que estoy referenciación reflector que puede ver su información es:
Castle.MicroKernel, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
y que sin duda contiene Castle.MicroKernel.Registration.IRegistration
Qué podría estar pasando?
Debo mencionar que los archivos binarios están tomados del latest build of Castle aunque nunca he trabajado con nant, así que no me molesté en volver a compilar desde el origen y simplemente tomé los archivos en el directorio bin. También debo señalar que mi proyecto se compila sin problemas.
Agregué los ensamblajes navegando a los archivos dll, por lo que el GAC no debería entrar en la ecuación. También haga clic derecho en el conjunto-> abrir en reflector desde la solución explorer lo trae al reflector con toda la información que esperaría –
No importa cómo lo haya agregado si existe un ensamblado con el mismo nombre/versión en el GAC cargará ese. –
VS.NET mostrará la ruta al ensamblaje que seleccione y el reflector abrirá el ensamblaje correcto, pero cuando la aplicación se ejecute, el tiempo de ejecución de .NET cargará el ensamblado GAC. –