<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><br>
</div>How about if we simplify this, by using the following strategy:<br>
<br>
- Move the interdependent types of those assemblies to corlib.<br>
- Mark them as internal.<br>
- Add InternalsVisibleTo for those assemblies towards mscorlib.<br>
- Use type forwarders to bring those types back from mscorlib to the<br>
correct places.<br>
<br>
This way the build would be much simpler, without dependency cycles.<br></blockquote><div><br></div><div>The dependency cycles are embedded in the public API contracts.</div><div><div><br class="">So the libraries must be built with those cycles to match Microsoft's public API.</div>
</div><div><br></div><div>The build cycles merely encode the steps that must be taken to bring up those cycles on binaries.</div><div><br></div><div>Miguel</div></div></div></div>