У меня была та же проблема, и использование директив в каждом файле в конечном итоге стало слишком большой работой; поэтому я начал использовать условные теги в файле .csproj.
Например, если мне нужно исключить некоторые файлы из сборки, я перенесу эти файлы в новый раздел ...
<ItemGroup Condition=" '$(SlimBuild)' != 'true' ">
...
</ItemGroup>
... и вызовите msbuild.exe с соответствующим параметром свойства.
MSBuild.exe MyApp.msbuild /p:Configuration=Release /p:SlimBuild=true
Возможно, вы также можете использовать подстановочные знаки для включения будущих файлов.
<ItemGroup>
<Compile Include=".\SomePath\*.cs" />
</ItemGroup>