I was able to reproduce the error you are getting.
So you are loading the assembly from a file Assembly.LoadFile(@"path\MyAsm.dll");
, and then you are resolving a hard referenced type container.Resolve(typeof(IC));
. I believe those types are coming from two different compiled binaries. The types from the binary in @"path\MyAsm.dll" are loaded into the container, but you are attempting to resolve the type of the binary from your application path's bin directory (Referenced assembly CopyLocal is set to True).
Either you need to register the types from the referenced binary that is already loaded in the app domain or you need to resolve the type from the loaded binary using reflection to find the type.
var assembly = AppDomain.CurrentDomain.GetAssemblies().
SingleOrDefault(asm => asm.GetName().Name == "MyAsm");
...
var c = container.Resolve(typeof(IC));
--or--
var assembly = Assembly.LoadFile(@"path\MyAsm.dll");
...
var c = container.Resolve(assembly.GetType("MyAsm.IC"));