If you're going to set _MSC_VER in the same source file that tests its value, you defeat the purpose of using it. In that case you might as well remove the preprocessor conditions altogether.
There is no way using preprocessor symbols to discern the platform toolset except for values like _MSC_VER that are set by the build tool or your own symbols defined in your project settings.