> > Merging with internalization also allows users to utilize different > versions of libraries with no problems. For example, Antlr is a > popular library, but NHibernate is tied to a particular version. If > you want to use Antlr in your own project without merging, you'd need > to use the same version as NHibernate, which could cause problems. >
Really? There are projects that internalize for example Castle Windsor resulting in conflicts as official Windsor types cannot be passed as these types are part of a different assembly. That makes passing the same container to different projects that difficult if not impossible. > Merging also isolates users from changes to these internal libraries, > such as the recent name change of the Remotion.Linq assembly. I agree that by using the Remotion.Linq library as only an internal library and nowhere exposing any of its types via the NHiberate api makes such a library a good example to ilmerge and not having any configuration abilities of Remotion via for example a shared configuration section.
