PreBuildEvent используется для вызова пользовательского скрипта в OutDir. Там нет специальных флагов, чтобы пропустить строительство. Я знаю несколько способов взломать систему сборки и получить необходимое поведение, но это не так.
1) Прежде всего вы можете создать два решения (с этим проектом и без него). Кроме того, вы можете легко создать скрипт, который проверит наличие файла и вызовет MSBuild для сборки того или иного.
2) Вы можете удалить проект из sln, добавить новый простой проект (скажем, dll), проверить наличие файла в действии BeforeBuild и вызвать MSBuild для создания собственного проекта. Или вы можете добавить это поведение к одному из проектов в этом sln.