Ответ 1
Этот ответ будет основан на предположении, что вы управляете версиями своих библиотек dll.
Если для параметра SpecificVersion установлено значение true (которое является значением по умолчанию при добавлении ссылки), тогда проект будет ссылаться на эту DLL с определенной версией (скажем, например, 1.0.0.0). Если позднее вы получите новую dll (скажем, 1.0.1.0), вам придется удалить старую ссылку dll и добавить новую ссылку. Это связано с тем, что проект специально ищет 1.0.0.0, когда у вас установлена новая версия 1.0.1.0.
Альтернативой этому является установка SpecificVersion в false, которая сообщает проекту, чтобы найти последнюю доступную DLL и использовать ее. Проблема заключается в том, что теперь проекту требуется "охотиться" в разных местах для DLL, на которую вы ссылались, что может увеличить время сборки. Он будет делать это, даже если он знает путь к dll, на который вы ссылались. Я не уверен, что это ошибка, или если это сделано по дизайну. Возможно, он проверяет, есть ли новые DLL, кроме ссылки, на которую вы ссылались (возможно, в GAC или в другом месте).
Здесь статья, которая описывает эту проблему более подробно.