I really don\'t get it.
If the base class is abstract and only intended to be used to provide common functionality to public subclasses defined in the assembly, why
I think the closest thing you can do is prevent other assemblies creating the abstract class by making it's constructor internal, to quote from MSDN:
An internal constructor prevents the abstract class from being used as the base class of types that are not in the same assembly as the abstract class.
You can then try adding an EditorBrowsableAttribute to the class to try and hide it from Intellisense (though, I've had mixed results using it to be honest) or put the base class in a nested namespace, such as MyLibrary.Internals
to seperate it from the rest of your classes.