То, что я пытаюсь выполнить, - это обнаружение изменений в проектах во время сборки, поэтому я могу установить флаг, указывающий, что проект был изменен. Я уже понял, как определить, когда компонент C# изменился, используя инкрементные сборки и CoreCompileDependsOn. Но это не похоже на то, когда изменился файл содержимого проекта. Из того, что я понимаю, была бы задача Копировать где-то задание SkipUnchangedFiles = «true» в зависимости от настройки файла содержимого в проекте, «Копировать в выходной каталог» («Не копировать, копировать всегда, копировать, если новый»). Я не совсем уверен, где этот процесс, возможно, файл Microsoft.CSharp.targets? Может ли кто-нибудь проконсультироваться с тем, как добавить зависимую задачу, которая выполняется только в том случае, если обновленный файл был скопирован на вывод bin? Достаточно простого примера.Цели MSBuild - Как обнаружить изменения в файлах содержимого .csproj
0
A
ответ
2
Я понял. Это запишет текстовый файл с именем проекта ТОЛЬКО если какие-либо файлы содержимого, которые «Скопировать Если Новее» установлено, были изменены во время сборки:
<Target Name="ContentFilesUpdated" AfterTargets="_CopyOutOfDateSourceItemsToOutputDirectory" Condition="'$(IsDesktopBuild)' == 'False'">
<WriteLinesToFile
File="@(ProductChangeFile)"
Lines="$(ProjectName)"
Overwrite="false"
Encoding="Unicode" Condition="!Exists('@(ProductChangeFile)')"/>
Смежные вопросы
- 1. Значение свойств приложения. Изменения в файлах csproj.
- 2. Вызов цели из файла csproj
- 3. Как обнаружить изменения в файлах рекурсивно?
- 4. Как обнаружить изменения состояния цели @property с
- 5. MSBuild not building csproj
- 6. Исключение проектов из MSBuild Runner без изменения файлов csproj
- 7. Исключить/удалить .csproj через аргумент MSBuild
- 8. MSBuild Задача из .csproj Файл
- 9. Задача задачи msbuild/csproj exec
- 10. MSBuild пользовательские общие цели
- 11. Как я могу обнаружить изменения в файлах из Windows?
- 12. Пропуск цели MSBuild
- 13. Как настроить скрипт MSBuild для использования набора outdirectory в файлах csproj при построении всего решения?
- 14. Как обнаружить изменения WindowState?
- 15. Как обнаружить изменения содержимого в текстовом поле в Javascript
- 16. Изменения в исходном файле .csproj
- 17. Как получить имя текущей цели в MSBuild?
- 18. Ссылка на синтаксис выражений в файлах CSPROJ
- 19. TeamCity изменение hintpath в файлах csproj
- 20. Исключить пользовательскую информацию MSBuild из файла csproj
- 21. Что контролирует параметр ProductVersion в файлах .csproj?
- 22. Обновление * .csproj с помощью MSBuild API
- 23. Использование C# для поиска узлов в файлах .csproj
- 24. Замена содержимого элемента в MSBuild?
- 25. Нежелательные изменения в файле .csproj при сборке
- 26. Разница между файлами .csproj и .msbuild?
- 27. .NET Core + MSBuild: Как связать csproj с несколькими файлами project.json?
- 28. MSBuild: Игнорировать цели, которые не существуют
- 29. Как исключить конкретный файл из моего MsBuild AfterBuild цели
- 30. Будет ли VS2008 блевать, если я добавлю дополнительные «нестандартные» цели в файл .csproj?
Это не может быть то, что вы хотите, но не могли бы вы сделать это git-репо и запустить скрипт с помощью команды git, чтобы увидеть, есть ли какие-либо пересмотренные изменения? –
К сожалению нет, это в компании, которая использует только TFS. Также я могу сделать то же самое в TFS, но я не хочу использовать VCS для определения изменения, потому что тогда некоторые из них, как мне нужно сопоставить изменение с проектом, чтобы я мог идентифицировать имя продукта. Если я использую целевые объекты MSBuild, то, если что-либо в проекте изменится, у меня уже есть сведения о проекте. –
Я не могу с этим поделать, так как мои знания о сборке MS невелики, однако мое другое чувство кишки должно было бы смотреть на хрюканье или глоток. –