Как запустить пользовательскую цель MSBuild, если файлы изменилисьC#

Место общения программистов C#
Anonymous
Как запустить пользовательскую цель MSBuild, если файлы изменились

Сообщение Anonymous »

Я хочу добиться следующего поведения msbuild:
  • Я запускаю сборку на основе чистого проекта, и моя пользовательская цель «OnFilesChange» активируется.
  • Я ничего не меняю и снова запускаю сборку, моя пользовательская цель «OnFilesChange» не запускается, и весь процесс сборки пропускается (ничего не изменилось).
  • Я меняю только отслеживаемый файл из ./Plugins, запускается только моя пользовательская цель «OnFilesChange», но не весь процесс сборки.
Можно ли это сделать?У меня есть пустой проект C# со следующей структурой:
Изображение

Файл .csproj содержит следующее:

Код: Выделить всё



net8.0












Здесь я попытался создать цель (OnFilesChange), которая при сборке должна сравнивать текущий файл ./Plugins/test.txt с выходным файлом ./bin/Debug/net8.0/Plugins/test .txt-файл. И если он был изменен, запустите мою цель «OnFilesChange». Я попробовал сохранить инкрементный процесс сборки со всеми оптимизациями MSbuild, но он не работает должным образом.
P.S.
Я не нашел подходящего решения для этого. эта проблема, но я нашел довольно хорошее решение этой проблемы. Просто включите это в свой файл .csproj: Этот обходной путь позволяет отслеживать дополнительные файлы и запускать обычную сборку (вместо актуальной).

Примечание: важно, чтобы для анализаторов обычно использовались дополнительные файлы: https://github.com/dotnet/roslyn/blob/m ... 20Files.md


Подробнее здесь: https://stackoverflow.com/questions/790 ... es-changed

Вернуться в «C#»