We do this all the time with the help of specialized client-specific DLL files. We use the same features in web applications, services, and desktop computers.
Client DLLs reference basic DLL projects so that they can inherit from various classes and implement interfaces. To do this, they must have a link to the base dll.
When starting the application ( global.asax Application_Start or the exe initialization procedure), we load all the detected DLL files for configuration through Assembly.Load , and it definitely does not create a cross reference.
source share