У меня есть два решения S1
и S2
, которые ссылаются на пару проектов C ++:
Project S1 S2
A x x
B x x
C x
D x
Проект A
и B
являются статическими библиотеками и используются в обоих решениях, в то время как C
и D
- это исполняемые файлы, которые используют A
и B
и являются только частью одного решения.
Если я внесу изменения в проект, VS должен перекомпилировать этот проект и его потребителей, которые являютсяожидаемое поведениеОднако, если я создаю одно из решений, сборка другого становится недействительной, что означает, что VS перестраивает все, хотя никаких изменений не было сделано.
Пример:
Я внесу изменения в A
иB
.Теперь я строю S1
, который строит A
, B
и D
(пока все нормально).Затем я строю S2
, который строит A
, B
и C
(почему A
и B
перестраиваются?).Теперь я снова строю S1
(обратите внимание, что я не вносил никаких изменений с тех пор, как я его построил в последний раз), который снова строит A
, B
и D
.
Почему VS перестраивает эти проекты каждый раз?
Все проекты написаны на C ++ 17, а версия Visual Studio 15.9.10 (последняя версия на сегодня, 28.03.19).