title: Why is a different dll produced after a clean build, with no code changes?
body: <p>When I do a clean build my C# project, the produced dll is different then the previously built one (which I saved separately). No code changes were made, just clean and rebuild. </p>
  
  <p>Diff shows some bytes in the DLL have changes -- few near the beginning and few near the end, but I can't figure out what these represent. Does anybody have insights on why this is happening and how to prevent it? </p>
  
  <p>This is using Visual Studio 2005 / WinForms.</p>
  
  <p><strong>Update:</strong> Not using automatic version incrementing, or signing the assembly. If it's a timestamp of some sort, how to I prevent VS from writing it? </p>
  
  <p><strong>Update:</strong> After looking in Ildasm/diff, it seems like the following items are different:</p>
  
  <ul>
  <li>Two bytes in PE header at the start of the file.</li>
  <li>&lt;PrivateImplementationDetails&gt;{<em>guid</em>} section </li>
  <li>Cryptic part of the string table near the end (wonder why, I did not change the strings)</li>
  <li>Parts of assembly info at the end of file.</li>
  </ul>
  
  <p>No idea how to eliminate any of these, if at all possible...</p>