Есть ли способ настроить задачу сборки так, чтобы она выполнялась только при изменении файлов в определенной папке?
Вы можете различить publi sh и построить процесс с помощью свойства DeployOnBuild
.
Решение
Вам нужно только добавить условие к DebugRunWebpack
target:
<Target Name="DebugRunWebpack" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' and 'DeployOnBuild'=='true'">
<!-- Ensure Node.js is installed -->
......
</Target>
И оно будет выполнение цели только во время процесса publi sh.
Кроме того, цель , PublishRunWebpack
выполняется после ComputeFilesToPublish
, который принадлежит процессу Publi sh. Так что не беспокойся об этом.
Обновление 1
Чтобы определить, изменились ли эти файлы, вы можете попробовать выполнить следующее условие:
<Target Name="xxxx" Condition="$([System.DateTime]::Parse('%(ModifiedTime)').Ticks) > $([System.IO.File]::GetLastWriteTime('$(xxxxxxxx)%(RecursiveDir)%(Filename)%(Extension)').Ticks)" />
Примечание $(xxxxxxxx)%(RecursiveDir)%(Filename)%(Extension)
означает, что все файлы в этой папке
Кроме , вы можете обратиться к этому документу .
Надеюсь мог бы помочь вам.