I’m working on web application with ASP.NET MVC and I use Castle MikroKernel as DI container. This is not my first time using MikroKernel,  but everything had been fine before.

This time the property injection didn’t work :( .

As a note, I develop custom XML schema to suit my need, so I don’t use Windsor’s XmlInterpreter class.  I  was sure that my component registration is ok, but I found that every time I build my application I need to close the existing Cassini web server. When I open my web , it said that one of my assemblies is still used by other process ?!

Something must be wrong with my dynamic loading. I checked my previous work and there I used Assembly.LoadFrom , not Assembly.LoadFile to load my plug-ins. But they sound similar, aren’t they?

Then I binged and I found this

You should never use Assembly.LoadFile()
Use LoadFrom() if you know where the assembly is located, use Load() to let .NET figure out where the assembly is located. 
Using Load() should be your preference but may require a .config file to help .NET find the assembly.