1) It seems that if you make an application with an installer project and
give one of the components a strong name and designate it to be installed to
the GAC, then the unique key is the combination of version number, and the
name in the snk file generated by sn.exe. This means that if I build and
install an application (A) that has version 1.0.0.0 and a certain key, and
then I build another application (B) that uses the same component, and I
improve the component but don't change the version number or strong key, then
when I install application (B), application (A) aswell as (B) will benefit
from the improved component.
Is this the designed behaviour, and if not, should it be/could it be of use?
Is there anything to protect application (A) from its interfaces being
broken, and what will happen if they are broken?
2) If in the above scenario, either application is uninstalled, will the DLL
file in the GAC be marked as shared and thus not uninstalled, in a similar
way to COM-style reference counting? Or is it expected that each application
will have its own version of the DLL?