Это, наверное, звучит как глупый вопрос, но я все равно попробую.
Таким образом, в Visual Studio не может быть двух проектов X и Y, в которых X ссылается на Y, а Y ссылается на X.
В целом, я могу полностью понять, как наличие циклической зависимости может быть проблематичным по ряду причин.
Но неужели не возможно на самом деле не скомпилировать два взаимозависимых проекта? Мне кажется, что это должно быть возможно, так как (на мой взгляд - может быть, я полностью неосновен в этом отношении) наличие двух взаимозависимых сборок на самом деле не , поэтому отличается от наличия двух взаимозависимых классов - случай, который является допустимым и может быть скомпилирован.
Для меня имело бы смысл, если бы вы сказали: «две сборки не могут зависеть друг от друга, потому что компилятор не может скомпилировать одну перед другой»; за исключением того, что кажется, что вы можете сделать один и тот же аргумент для двух классов в одной сборке, и ясно, что компилятор может справиться с этим сценарием просто отлично.
По сути, я спрашиваю не в том, что у меня есть какое-то отчаянное желание сделать эту вещь, которая, как я знаю, обычно в любом случае опрометчива. В частности, мне интересно, потому что было бы хорошо, если бы у меня было два проекта - скажем, MyProjectCS и MyProjectVB - которые существовали в основном как две взаимозависимые части одного модуля и были отдельными, потому что некоторые части были написаны на C # и другие части были написаны на VB.NET.
Итак, мой вопрос (три раза):
- Возможно ли включить это поведение (в данном случае в Visual Studio или в другом месте)?
- Если это невозможно в какой-либо IDE, теоретически это возможно по крайней мере или могут существовать взаимозависимые сборки?
- Если это даже теоретически невозможно, то почему бы и нет? Другими словами, чем взаимно зависимые сборки отличаются от взаимно зависимого кода в одной сборке?