Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat are the differences in the disassembly of two .NET executables built from the same source code?
    primarykey
    data
    text
    <p>Set up:</p> <ul> <li>same source code is used build a .NET 4 executable (console application) on two different machines. </li> <li>Microsoft Visual Studio 2010 SP1 .NET 4 settings are identical on the two machines </li> <li><code>ildasm projectName.exe /out:test.txt</code> is performed on the .exe's from both machines. </li> <li>ildasm output differs beyond expected differences (mvid, privateimplementationdetails).</li> </ul> <p>Question:<br> I have spent some time creating an application to get the CRC of a .NET executable and have succeeded in ignoring all differing build-time data. </p> <p>I am removing all data above the <code>// =============== CLASS MEMBERS DECLARATION ===================</code> line in ildasm.exe output. This ignores the MVID. I am building the .exe without debug information. And lastly, I parse the output for <code>&lt;PrivateImplementationDetails&gt;{GUID}</code> and ignore those. </p> <p>I then CRC the remaining text file. </p> <p>The CRCs are the same when the same project is built on the same computer, but differ when the same project is built on a different computer with identical source code and MSVS 2010 settings. </p> <p>Does anyone know of any machine-dependent information stored in the assembly of a .NET executable? </p> <p>Below is an example of the differences. It appears that different IDs are being assigned each object and class, but I find it odd that this would only differ when they code is build on different machines...</p> <pre><code> `class DSC_PI.MainWindow/'&lt;&gt;c__DisplayClass21' V_2,` `class DSC_PI.MainWindow/'&lt;&gt;c__DisplayClass10' V_2,` `class DSC_PI.MainWindow/'&lt;&gt;c__DisplayClass1e' V_3,` `class DSC_PI.MainWindow/'&lt;&gt;c__DisplayClassd' V_3,` </code></pre> <p>Any insight would be much much appreciated.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload