У меня есть решение VisualStudio 2010, содержащее множество проектов на C ++ (более 100).
Многие из них с некоторыми строками в событии PostBuild (копирование файлов и многое другое).
Проблема возникает при сборке решения на нашей сборочной машине с использованием определения сборки tfs:
Даже если проект обновлен, выполняется посткомпоновка, и в файл журнала записывается строка с «Создание» .unsuccessfulbuild », поскольку« AlwaysCreate »было указано». Это значительно увеличивает время сборки и усложняет непрерывную интеграцию.
Эта PostBuild не запускается при запуске из VisualStudio.
Чтобы сузить проблему (и исключить любую возможную проблему со ссылкой на несуществующие файлы и т. Д.), Я создал новый файл решения и добавил в решение новый проект консольного приложения C ++ с помощью мастера проектов VisualStudio. Единственное, что я изменил по умолчанию, - это строка в событии PostBuild: эхо «Вывод PostBuild» (просто чтобы увидеть в файле журнала, когда PostBuild был запущен).
Затем я создал новое определение сборки, запустив это решение.
И все же PostBuild активируется, даже если проект обновлен. Та же проблема возникает, если я создаю файл решения, выполняющий msbuild, в командном окне. Но сборка из VisualStudio работает отлично.
Кто-нибудь может дать мне несколько советов о том, как избежать этого PostBuild, когда проект «актуален»?
(Я проверял, что Linker OutputPath соответствует значению $ (TargetPath) при сборке на компьютере сборки.)