Actually, that would throw a TypeLoadException since the types are not the same, but you apparently handled the exception and continued executing code, meaning that the object you were trying to instantiate of that type was still null, hence the NullReferenceException. You can avoid this problem in your multi-project solution by adding project reference instead of assembly reference. So, if project "B" depends on project "A", right-click on project "B", select Add Reference, then click the Projects tab. Double-click project "A" to add it. Now a build dependency is established. Any changes to project "A" will cause project "A" to be compiled when you compiled project "B", and if project "A" is recompile project "B" will grab the new copy when it's compiled. This also means that when you compile a release build of project "B", a release build is compiled for project "A", thus keeping your builds in sync as well.
Microsoft MVP, Visual C# My Articles