I think this should be what you want:
System.Reflection.Assembly.GetEntryAssembly().Location
This returns the assembly that was first loaded when the process started up, which would seem to be what you want.
GetCallingAssembly
won't necessarily return the assembly you want in the general case, since it returns the assembly containing the method immediately higher in the call stack (i.e. it could be in the same DLL).