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