If your system does something and you want other people/systems to get the results of your processing, then exposing an API with endpoints would be the simple solution.
This way you have a lot of control in authentication and authorization.

If you are also developing parts of your system and expect them to be used by others devs, then you could think about creating NuGet packages instead of just distributing DLLs.

Of course, this is a very basic overview of your options.