I wasn't sure where the right place is; I saw the existing detection logic in the VS Runner. I assume for the other sources, someone should just not include the assembly as a test source when specifying the assemblies to run?

With VS, the user doesn't have that option as it specifies every assembly that matches the pattern (.exe/.dll).

I suppose it could throw if the file isn't a valid CLR assembly, but what does the current code path do? I thought it passes that assemblyFileName ordinal into the Xunit1/2 runner for an assembly.load?

I can certainly add a try/catch around ReflectionOnlyLoad to return false if it fails. If it throws for any reason, it wouldn't contain unit tests anyway. Would that be appropriate?