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