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

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

Сообщение Anonymous »

Я хочу добиться следующего поведения msbuild:
  • Я запускаю сборку на основе чистого проекта, и моя пользовательская цель «OnFilesChange» активируется.
  • Я ничего не меняю и снова запускаю сборку, моя пользовательская цель «OnFilesChange» не запускается, и весь процесс сборки пропускается (ничего не изменилось).
  • Я меняю только отслеживаемый файл из папки ./Plugins, запускается только моя пользовательская цель "OnFilesChange", но не весь процесс сборки.
Можно ли это сделать?< /p>
У меня есть пустой проект C# со следующей структурой:
[img]https://i.sstatic .net/6HzlenlB.png[/img]

Файл .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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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