title: Why does the ASP.NET Compiler rebuild all binaries in every build?
body: <p>When I recompile my project (asp.net, c#) with aspnet_compiler the rebuilt binaries change (when compared to the previous build) even if no code changes have been made.</p>
  
  <p>This, I understand, is due to the build generating a new Module Version ID (guid) each time it builds (to distinguish between builds), another similar question talks about this: <a href="https://stackoverflow.com/questions/5598291/can-i-specify-the-module-version-id-mvid-when-building-a-net-assembly">Can i specify the module version id (MVID) when building a .net assembly?</a></p>
  
  <p>The above linked question seems to suggest there is no way to rebuild a project and have the binaries match a previous build of the same unchanged code.. ok, fine, I understand - but why are all the binaries being rebuilt at all?</p>
  
  <p>I would think, according to the documentation ( <a href="http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx" rel="nofollow noreferrer">http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx</a> ), that unless -c is specified as an argument the aspnet_compiler should only rebuild those binaries that actually need to be (due to changed code). Am I misunderstanding or maybe missing something?</p>
  
  <p>The aspnet_compiler arguments I'm using:</p>
  
  <pre><code>aspnet_compiler -f -u -fixednames -nologo -v / -p .\myproject\ .\mybuild\
  </code></pre>
  
  <p>Note that this issue occurs only with a WebSite project, not a Web Application project (they are compiled differently).
  Also this issue occurs even if you create a WebSite project and page with no functionality, and never open it or change it in anyway between builds.</p>
  
  <p>Decompiling the binaries that are produced shows no differences. Comparing the binaries of two "identical" builds shows small differences in the same part of the binaries each time - which I believe is probably related to the random build guid. I've found no way of avoiding this change between builds.</p>