Мы часто сталкиваемся с этой проблемой в наших крупных проектах, которые включают в себя экспортируемые библиотеки.Подход, который вы используете, является правильным и должен работать.
Начиная с проблемы управления исходным кодом: я видел проблемы с TFS при этом, потому что проекты не имеют общую корневую папку - TFS нене нравится, когда файл проекта не находится в дочерней папке расположения файла решения.Он может попытаться убрать привязки контроля исходного кода из проекта B1.Я обнаружил, что наличие отдельных рабочих пространств, в которых Project B1 отсутствует в текущей рабочей области для решения A, очень помогает здесь.(Только будьте осторожны, чтобы не проверять свое решение с включенным Project B1, иначе другие люди, получающие решение, могут получить странные ошибки.)
Если вас не рассматривают как один и тот же проект для целей отладки, убедитесь, что выссылки на правильные файлы конфигурации / архитектуры, на которые они были собраны при отладке, и на наличие файлов pdb.До тех пор, пока исходные файлы находятся в тех же папках, в которых они находились при сборке DLL, VS должен их находить.Вам даже не нужно, чтобы проект был в решении, чтобы это работало, VS будет находить исходные файлы, пока они доступны.Добавление проектов в решение дает вам дополнительную навигацию, интеллектуальный смысл и т. Д., Поэтому я обязательно выберу этот путь.
В худшем случае попробуйте временно изменить ссылку Project A1 на ссылку уровня проекта.,Опять же, не проверяйте ваше решение таким образом, но это быстрый способ заставить процесс отладки работать правильно.