title: GAC and Assembly Versioning
body: <p>i have to deploy few assembly to GAC. I just had a few questions about (my) understanding of GAC. really confuses me.</p>
  
  <p>I want to know which versions to change assembly and file version. What are  possible combinations in which GAC dll will be replaced by installing application. and basic management for GAC files.     </p>
  
  <p>I will explain my question using following example for better understanding of GAC :</p>
  
  <p>Suppose i have products A and B .</p>
  
  <p>Both A and B refer to  myfile.dll installed in GAC.<br>
  (i) assembly version : [1.0.0.0]<br>
  (ii) assembly file version : [2.0.0.0]  (intentionally different to avoid more confusion)    </p>
  
  <ol>
  <li><p>Suppose i have a bug fix that applied in myfile.dll.
  Then which version should i change?</p></li>
  <li><p>Suppose i have new version of A say 'ANEW' .then which version should be changed so that
  both A,B ANEW can reside side by side.</p></li>
  <li><p>suppose if i have 'A' installed with myfile.dll present in GAC and now i try to install
  'B' which has gac dll with bug fixes ..then which versions to change so that change reflects in 'A'.</p></li>
  <li><p>same as Q3 but B's change should not reflect in 'A'. </p></li>
  <li><p>Suppose 'A' is installed with myfile(1.0.0.0). Now suppose 'B' is installing with
  myfile(1.x.y.z).. will the GAC file be replaced?</p></li>
  <li><p>Suppose 'A' is installed with myfile(1.0.0.0). Now suppose 'B' is installing with
  myfile(2.x.y.z).. will the GAC file be replaced?</p></li>
  <li><p>Suppose 'A' is installed with myfile (1.0.0.0). Now suppose 'B' is installing with
  myfile(1.0.0.0) assuming the version is not changed.. will the GAC file be replaced?</p></li>
  <li><p>Also how are GAC dlls removed .is there any criteria for removal?</p></li>
  </ol>
  
  <p>I guess questions are bit confusing but hope you guys know what im asking.</p>
  
  <p>PS: Related to this topic <a href="https://stackoverflow.com/questions/1900708/net-assembly-dll-sharing-and-deploying">net-assembly-dll-sharing-and-deploying</a></p>