Ссылки на Visual Studio, хотя ничего не изменилось - PullRequest
3 голосов
/ 10 сентября 2009

У меня есть пара проектов VS 2008 (C ++), которые связаны каждый раз, когда я запускаю сборку, хотя ничего не изменилось. т.е. я выбираю «Построить решение», он компилируется и связывается, я снова выбираю «Построить решение», он ничего не компилирует, но снова связывает.

Это довольно раздражает, и я проверил все, что может заставить его снова связываться. Есть ли способ узнать, почему Visual Studio выполняет или пропускает определенные этапы сборки?

Любой вклад приветствуется!

Ответы [ 3 ]

3 голосов
/ 02 октября 2009

У меня было некоторое время, чтобы вернуться к проблеме, и напарник дал мне совет использовать «монитор процесса» от sysinternals, чтобы выяснить, какой файл отсутствует.

И вот, это сработало! Оказывается, Visual Studio настаивает на связывании с кучей библиотек, даже если приложению это не нужно. Из-за неудачной (я думаю ...) цепочки событий один из путей к библиотекам по умолчанию исчез из глобальных настроек Visual Studios, поэтому VS больше не мог найти эту библиотеку («coredll.lib» в моем случае).

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

Существует два возможных исправления: 1) Восстановите путь к этой библиотеке в глобальных настройках Visual Studio 2) Используйте «$ (NoInherit)» в AdditionalLibraries, чтобы избавиться от ненужной библиотеки.

Я использовал решение № 1, потому что № 2 необходимо сделать для каждой конфигурации каждого проекта, потому что это невозможно сделать с помощью листов свойств.

1 голос
/ 12 января 2011

Восстановление может быть вызвано также несуществующими и неиспользованными .h файлами, принадлежащими проекту. Поскольку они не используются, нет никаких предупреждений и ошибок об отсутствующих файлах.

Использование «Process Monitor» от Sysinternals, как упоминалось ранее, было большим намеком на выяснение причины.

0 голосов
/ 11 сентября 2009

Немного, но проверьте отметку даты / времени на любых зависимых DLL, которые у вас есть. Если они будут в будущем, произойдет восстановление.

Редактировать: Также вы пытались открыть файлы .vcproj в редакторе, чтобы проверить, нет ли что-нибудь необычного? Вы также можете попробовать воссоздать их с нуля, если это возможно.

...