We use a private/internal NuGet server for this. But only for helper functions and/or libraries we use on a lot of projects/components. Via NuGet you can even specify versions, old and/or beta versions, etc. Works very well for us. Just know that when there's a bug in one of the functions, that you have some documentation on what is used where.
Don't forget to read up on the 11th fallacy of distributed computing as well.