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

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

(Все работало в версиях Visual Studio до 2010 года, но в Visual Studio 2010 и более поздних версиях это не так.)

Ответы [ 2 ]

20 голосов
/ 10 сентября 2010

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

Командная строка: buildsomething.batthing.h
Описание: Строим что-то
Выходы: что-то. Ч

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

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

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

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

0 голосов
/ 21 декабря 2017

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