R – Visual Studio&Source Control: How to have shared code

version controlvisual studiovisual-sourcesafe

i want to have some shared code (code library, controls, utilities, helper classes, etc) in Visual Studio. i do not mean shared assemblies, i mean shared code (i.e. i want to ship one assembly with my application, the executable assembly).

The technique in other development environments way is to have the common source code in a path on my machine, and the IDE is given a list of paths to search for code files.

Visual Studio does not support code search paths.

The back-up hack solution is to copy the source-code over and over into every project. But then in order to keep them all as one version, they are shared in source control. This works well when your source control provider is Microsoft Visual SourceSafe – which supports shared files.

But other source control products (CVS, Subversion, Microsoft Team Foundation Source Save Server, SVN) do not support shared files.

So how does everyone else avoid shipping DLL's with their executable?


Update 1

It is an issue of single file deployment. ClickOnce generates 18 files in 3 folders (i.e. more than one file)

Best Answer

I could propose two solutions:

  1. Visual Studio allows you to add a link to a file. Choose "Add Existing Item", pick your file and then click the arrow next to the "Add" button. A popup will display and you should choose "Add as link" from there. Now you can store your common code in one location (folder).

enter image description here

  1. Compile your common code in reusable assemblies and use them in your projects. Use ILMerge to merge all assemblies into one when deploying. I personally prefer this option.