У вас не может быть двух проектов, зависящих друг от друга (это совершенно логично; какой проект должен быть построен первым?). Вы должны переместить части в Project1, которые необходимы для проектов Project1 и Workbook, в отдельный проект, на который могут ссылаться как Project1, так и проекты Workbook.
Обновление
Есть несколько различных способов справиться с этой ситуацией, и, не зная деталей вашего приложения, я не могу дать какое-либо конкретное решение. Но один из способов - использовать внедрение зависимостей . Вместо того, чтобы проект Workbook имел жесткую зависимость от кода в Project1, вы можете извлечь интерфейс для этой функции. Этот интерфейс размещен в другом проекте, на который могут ссылаться как Project1, так и проект Workbook.
Тогда я предполагаю, что Project1 создаст экземпляры типов в проекте Workbook. Это означает, что вы должны изменить конструкторы этих типов, чтобы иметь параметр, если этот тип интерфейса. Project1 будет содержать реализацию интерфейса, который он будет передавать типам проектов Workbook при их создании.
Таким образом, код проекта Workbook может использовать код из Project1 без ссылки на него.