Я написал препроцессор С#, который я включил в мои проекты .csproj, вызвав его, используя целевой объект PreBuild MSBuild. Это работает нормально, за исключением того, что, когда препроцессор модифицировал один или несколько исходных файлов С# в проекте (это происходит довольно редко), на этапе компиляции С# используется кешированная версия исходного файла. По завершении сборки Visual Studio предлагает мне сообщение "filename-this-or-that, что этот файл был изменен вне исходного редактора. Вы хотите его перезагрузить?". Поэтому я должен ответить "Да" и перестроить проект, чтобы заставить его использовать измененные исходные файлы.
Есть ли способ заставить Visual Studio обнаружить, что исходные файлы были изменены, и использовать обновленные версии на этапе компиляции? Или я должен ссылаться на свой препроцессор каким-то другим способом, а не на использование цели BeforeBuild?