Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How manage references in SVN/Visual Studio?

For a long time looking for a way to manage references, I haven't found any ideal way.

The main problems are:

1-) Should I include all projects that I use in same Solution and reference the Project? Or reference just the dll file?

2-) If I should reference dll file, the best way is to create a ReferencedAssemblies inside each project or a main folder at svn root?

3-) Its ok paste and reference dll´s inside bin folder of my project?

4-) Its ok add and commit dll´s inside bin folder of my project? This way when a new devoloper checkout the project, it will compile perfect, but isn´t default behavior of visual studio, all source controls ignore bin and obj by default, just adding .refresh files(for web-site project)

Someone can help me?

like image 485
Felipe Pessoto Avatar asked Sep 28 '10 17:09

Felipe Pessoto


People also ask

How do I manage references in Visual Studio?

You can also right-click the project node and select Add > Project Reference. If you see a References node in Solution Explorer, you can use the right-click context menu to choose Add Reference. Or, right-click the project node and select Add > Reference.

How do I view references in Visual Studio?

In C# or Visual Basic, the Find References window has a Kind column where it lists what type of reference it found. This column can be used to filter by reference type by clicking on the filter icon that appears when hovering over the column header.


2 Answers

1) If you include projects in your solution that are already checked in somewhere else, you can change the SVN binding for that project at the solution level in Visual Studio. (File > Source Control > Change Source Control). You would change it to point to wherever it's located in your SVN repo.

2) If you have a lot of developers on different machines all wanting to use the same libraries, it's probably easier to have a common place for all your third-party libraries/assemblies. There's no point in having them copied all over the place in your SVN repository.

3) No, it's not usually ok to do this. I would avoid it (unless somebody has a valid reason for it).

4) Never commit your bin folders. The default behavior is such for a reason. The .refresh files are byproducts of the old Web Site projects and they are fine.

like image 59
Cᴏʀʏ Avatar answered Sep 29 '22 00:09

Cᴏʀʏ


1) In the typical scenario yes, you should reference all projects that you own. But you should make a decision according to frequency of changes made to referenced projects. For example if you have an open source library it is better to include it as an assembly, cos you probably will not change this code frequently.

2) Typical approach is to create separate single directory at SVN root and place assemblies there in different sub-folders according to assemblies type. Here is how my current folder looks like: alt text

3) No, it is better to reference assemblies from some other from bin folder. All referenced assemblies will be copied to the bin while building process. Also note that the purpose of *.refresh files in the bin folder is to prevent you from having to copy new versions yourself.

4) No, you should never commit your bin folder cos you can rely on *.refresh files for WebSites and just forget about this problem for other project types.

like image 21
Restuta Avatar answered Sep 29 '22 00:09

Restuta