Set up:
ildasm projectName.exe /out:test.txt
is performed on the .exe's from both machines. Question:
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.
I am removing all data above the // =============== CLASS MEMBERS DECLARATION ===================
line in ildasm.exe output. This ignores the MVID. I am building the .exe without debug information. And lastly, I parse the output for <PrivateImplementationDetails>{GUID}
and ignore those.
I then CRC the remaining text file.
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.
Does anyone know of any machine-dependent information stored in the assembly of a .NET executable?
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...
`class DSC_PI.MainWindow/'<>c__DisplayClass21' V_2,`
`class DSC_PI.MainWindow/'<>c__DisplayClass10' V_2,`
`class DSC_PI.MainWindow/'<>c__DisplayClass1e' V_3,`
`class DSC_PI.MainWindow/'<>c__DisplayClassd' V_3,`
Any insight would be much much appreciated.
Do both systems have the same number of cores? I could imagine, that when it comes to counting up the variable name suffix, the result can differ depending on the number of threads used for the compiler.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With