2015-07-28 3 views
3

У меня есть проект в MSVS 2015, который постоянно обновляется, т. Е. Здание всегда запускает MSBuild, который затем дает кучу «Все выходы являются актуальными». после чего следует сообщение «Сборка выполнена успешно». а не просто делать ничего, как должно. В предыдущих версиях MSVS существовал (никогда не документированный AFAIK) способ включения подробного ведения журнала отладки, чтобы быстро найти причину этого, как описано, например. here. К сожалению, это не похоже на MSVS 2015.Как включить встроенную отладку в MSVS 2015?

Кто-нибудь знает, что заменило его или какой-либо другой способ отладки этой проблемы?

+1

Вы установили многословность вывода сборки в Диагностику (Инструменты-> Параметры-> Проекты и Решения-> Сборка и Выполнить)? Как правило, довольно длинный протокол сборки должен давать вам подсказку о том, что происходит не так. Скорее всего, это какой-то файл, установленный как «копировать всегда» ... btw, если ничего не делать, вы можете получить выходные строки в любом случае, например «пропущенный xy, проект не выбран для сборки» – Haukinger

+0

К сожалению, я должен был упомянуть, что Я попробовал это, но это не помогает, потому что журнал начинается с чего-то типа '------ Сборка запущена: Project: foobar, Configuration: Debug Win32 ------' и если есть какое-то объяснение почему он начинался с 3000 строк после него, я не могу его найти. Мой реальный вопрос - почему он начинает сборку в первую очередь. –

+0

3000? 300000 более вероятно: D Но если вы знаете, что ищете, вы можете резко уменьшить это: посмотрите на первые строки для каждого из проектов. Там VS указывает причину, по которой он хочет построить проект, например. «13> Проект« Rotor (Rotor \ Rotor) »не обновлен. Последняя сборка была с несохраненными файлами». или "17> Project 'ProductDatabaseImport' не обновляется. Входной файл 'something.dll' изменяется после выходного файла ''." – Haukinger

ответ

0

У меня была очень похожая проблема с проверкой и распаковкой некоторых файлов, у которых была дата в будущем. Это заставило весь проект перестроить даже без изменений.

В * NIX системы, я бы использовал touch исправить, но на Windows я использовал команду FOR на cmd.exe:

FOR /R %I in (*.*) do copy /b "%I" +,, 

который обновляет метку времени к текущей (IIRC).


Прежде чем я это выясню, я попытался изменить многословие процесса сборки. Вам необходимо перезапустить VS2015 после изменения этого параметра:

Tools->options Projects&Settings->Build and Run; Build Output : Verbose


Кроме того, включите баннер запуска с помощью Configuration Properties -> C/C++ -> General. Это дает вам еще несколько команд сборки.

+0

Беда в том, что это (дата в будущем) является лишь одной из многих или, по крайней мере, нескольких возможных причин ложных перестроек. Я видел это в прошлом, и я также видел наиболее распространенный, который имеет несуществующий файл (не используемый иначе, например заголовок) в проекте. И я описал новый для меня выше.Построение отладки в предыдущих версиях MSVS очень помогло с непосредственным нахождением того, что было неправильно, подробная диагностика MSBuild на самом деле не помогает с этим (см. Мои ответы на комментарии выше, почему). Я очень удивлен, почему они уберут такую ​​полезную функцию ... –

Смежные вопросы