Esto probablemente suena como una pregunta estúpida, pero voy a intentarlo de todos modos.¿Es posible habilitar dependencias circulares en Visual Studio en el nivel de ensamblaje? ¿Las asambleas mutuamente dependientes serían posibles?
Así en Visual Studio, no se puede tener dos proyectos de X e Y tal que X hace referencia a Y e Y referencias X.
En general, puedo totalmente entender cómo tener una dependencia circular puede ser problemático, por una variedad de razones
¿Pero realmente no es posible para compilar dos proyectos que son interdependientes de esta manera? Me parece que debe ser posible, ya que (en mi opinión, tal vez soy completamente off-base sobre esto) tener dos ensambles mutuamente dependientes realmente no es entonces diferente de tener dos clases mutuamente dependientes - un caso que es legal y puede compilarse.
Tendría sentido para mí si dijera: "dos conjuntos no pueden depender el uno del otro porque el compilador no pudo compilar uno antes que el otro"; excepto que parece que podrías hacer el mismo argumento para dos clases dentro del mismo ensamblado, y claramente el compilador puede manejar este escenario muy bien.
Básicamente, la razón por la que estoy preguntando no es que tenga un deseo desesperado de hacer esto que, de todos modos, sé que es poco aconsejable. Específicamente, me pregunto porque sería bueno si pudiera tener dos proyectos, por ejemplo, MyProjectCS y MyProjectVB, que existían básicamente como dos partes mutuamente dependientes de una sola unidad, y solo estaban separados porque ciertas partes estaban escritas en C# y otras partes fueron escritas en VB.NET.
lo tanto, mi pregunta es (uff, tres veces):
- ¿Es posible habilitar este comportamiento (en Visual Studio, o en otra parte, para el caso)?
- Si no es posible dentro de ningún IDE, ¿es posible al menos teóricamente, o podrían no existir conjuntos mutuamente dependientes?
- Si ni siquiera es teóricamente posible, ¿por qué no? En otras palabras, ¿cómo se diferencian los conjuntos mutuamente dependientes del código mutuamente dependiente dentro de un único conjunto?
Esto me pasa todo el tiempo ... mi proyecto Egg lanza 'Chicken.dll no encontrado ...' mientras mi proyecto Chicken arroja un error similar. Ho-Hum. –
El .NET framework internamente usa ensambles mutuamente dependientes. Alguien lo descubrió hace un tiempo después de desmontar los ensamblados de .NET y planteó esa pregunta en SO (aunque no puede encontrar el enlace). – Alex
@Alex, sí lo encontré una vez. Me pareció que lo hizo a través de la reflexión. – Joshua