Подтвердить что ты не робот

Почему мои шаги пользовательской сборки не выполняются в Visual Studio 2010?

У меня есть проект Visual Studio с несколькими шагами Custom Build в нем, но некоторые из них просто не работают. Нет ошибок и предупреждений, и в соответствии с журналами сборки они запущены, но они определенно не являются.

Все это работало в более старых версиях Visual Studio, но теперь это происходит неправильно в Visual Studio 2010.

4b9b3361

Ответ 1

Причина, по которой это не удается, заключается в том, что в том же проекте, который вызывает пакетный файл, есть другой шаг пользовательской сборки, например:

Командная строка: buildsomething.bat something.h
Описание: Построение чего-то
Выходы: something.h

Visual Studio 2010 объединяет все пользовательские команды сборки в один пакетный файл, который затем запускается. Когда командный файл запускает другой пакетный файл, Windows не возвращает управление первому пакетному файлу. Это похоже на goto, а не на вызов функции. Чтобы устранить проблему, вам нужно использовать call следующим образом:

Командная строка: вызов buildsomething.bat something.h

call возвращает поток управления в пакетный файл Visual Studio и, следовательно, позволяет выполнять другие шаги пользовательской сборки.

(Я отвечаю на свой вопрос, чтобы будущие поисковики могли найти ответ.)

Ответ 2

Убедитесь, что ниже двух файлов находятся в хорошей форме. Лучше сравните эти файлы с рабочей установкой 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