Студия делает shadowcopy сборок в дизайнтайме и на это сложно влиять. К тому же, т.к. она не выгружает их из домена (привет framework), у тебя могут быть загружены разные версии одной сборки и разные другие сборки могут на них ссылаться. У нас была классическая ситуация, когда сборка A зависит от B и C, а B ещё и от C. Тогда когда сбилдишь C и A. И рефлексией поищешь в домене все реализации некоего класса, то можно получить классы, которые ссылаются на старую C через B и на новую C через A. Я подкладывал соломку как мог в эти места, но починилось только переездом на .Net core, где наши дизайнеры переехали а отдельный процесс и мы сами делали копии сборок и подкладывали все изменённое дерево сборок (в случае выше, сборка B тоже бы перегрузилась).
Это было год назад, как оно сейчас живёт - я хз.