When adding either 3rd party libraries or internally developed ones to a C# project, I usually just add the reference in the Visual Studio solution browser. However, this creates an absolute path reference to the library. When another developer on a different computer checks out the code, they probably won't have those libraries in those exact folder locations.
Where do you put your 3rd party libraries? suggests that 3rd party libraries should be kept in a folder inside the solution folder (i.e. the repository folder). This makes sense to me. However, when I add the references they are still absolute path references. Changing C# .dll references from absolute to relative offers a solution to this, however, is manually editing the .csproj file really the way to go? I've read that it is not recommended to mess around with the .csproj file. Also, I see in the comments to that question that if your library is not above the project folder (so in my case I created a dependencies folder inside the project folder, not the solution folder), then VS should make the path reference relative by default but that did not happen in my case.
Then there is the question about internally developed libraries. In my case I have a utilities project that has functions I need to use across multiple solutions. I would prefer not to have to manually update the library in each project that relies on it. This is not a problem if I use absolute paths to the reference but then what happens with using version control? In the first question I linked to, one of the lower down answers suggests using a program called Sync Toy to make sure that the library gets copied into all the projects that reference it's dependencies folder. Is that a sensible way to go?
Lastly, and this last point may be too unrelated to fit in the same question, when I add the reference, but default it coies the library to the output directory on building. But that means when I deploy the project I have to copy all those additional dll files. Is there a way to avoid this and embed the library into the output .exe?