Question: I came across Side-by-side Assemblies for the first time today while trying to install a Debug install set to a test machine. I managed it in the end, but was left with several questions:

1. Whare are Side-by-side assemblies?
2. How does Windows deal with these assemblies differently from other assemblies
3. How do applications depending on Side-by-side assemblies deal with these differently from normal assemblies
4. Under what situations might someone want to create a Side-by-side assembly?

Answer: 
A starting point for understanding side-by-side assemblies and what they're for would probably be the "[Isolated Applications and Side-by-Side Assemblies](http://msdn.microsoft.com/en-us/library/dd408052%28VS.85%29.aspx)" reference on MSDN.

Essentially, side-by-side assemblies are a way to ensure that a given application will *always* use a specific version of a DLL, particularly Windows system DLLs (such as the Common Controls), no matter the Service Packs, Updates or new applications installed after it.

Other links of interest:

* [MSDN: Side-by-side assemblies (windows)](http://msdn.microsoft.com/en-us/library/aa376307%28VS.85%29.aspx)
* [Wikipedia: Side-by-side Assembly](http://en.wikipedia.org/wiki/Side-by-Side_Assembly)
Side-by-side assemblies are collection of resources available at runtime. They may be collection of dlls, classes, type libraries or interfaces. An applicfation with all components as side-by-side assemblies is called an isolated application.

Side-by-side assemblies provide a way for implementing multiple dlls in one assembly

<http://www.mazecomputer.com/sxs/help/manifests.htm>