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

StackOverflow https://stackoverflow.com/questions/3686837

Вопрос

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

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

Это было полезно?

Решение

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

Командная строка: buildsomething.ch что-нибудь.
Описание: строить что-то
Выходы: что-то .h.

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

Командная строка: вызов buildsomething.ch что-нибудь

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top