Is it better to use System.Assembly.Load or to load the assembly directly into the AppDomain using System.AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap? I am specifically interested in calling different versions of the same assembly running in the same process. I think with CreateInstanceFromAndUnwrap your assembly must have the [serializable] attribute, but why is that?
EDIT: The assembly I'm trying to load is NOT in the same location as the caller.