Почему мои шаги пользовательской сборки не выполняются в Visual Studio?
У меня есть проект Visual Studio с несколькими шагами Custom Build, но некоторые из них просто не запускаются. Там нет ошибок и предупреждений, и в соответствии с журналами сборки они работают, но они определенно нет.
(Все версии работали в версиях Visual Studio до 2010 года, но в Visual Studio 2010 и более поздних версиях это не так.)
2 ответа
Причина, по которой он не работает, заключается в том, что в том же проекте есть еще один пользовательский шаг сборки, который вызывает пакетный файл, например:
Командная строка: buildsomething.batthing.h
Описание: Строим что-то
Выходы: что-то
Начиная с Visual Studio 2010, все пользовательские команды сборки объединяются в один пакетный файл, который затем выполняется. Когда пакетный файл запускает другой пакетный файл, Windows не возвращает управление первому пакетному файлу. Это как goto, а не вызов функции. Таким образом, чтобы решить проблему, вам нужно использовать call
как это:
Командная строка: вызов buildsomething.batthing.h
call
возвращает поток управления в пакетный файл Visual Studio и, следовательно, позволяет запускать другие шаги пользовательской сборки.
(Я отвечаю на свой вопрос, чтобы будущие искатели могли найти ответ.)
Убедитесь, что ниже двух файлов в хорошем состоянии. Лучше сравнить эти файлы с рабочей установкой VS.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets