Search code examples
vb.netvisual-studio-2012

Differences between the VS Ultimate and Express compilers


On my PC at work I have a license for Visual Studio Ultimate 2012 but at home I am using Visual Basic express, since I don't really need most of the advanced features.

However I was wondering if there is a difference in the VB.NET build that I create with Ultimate versus the build I do with Express.

I thought it was easy enough to test: Just build it with both versions and compare the .EXE files. I noticed that they were pretty much identical, but here and there I found little differences. ~10-12 bytes of the same value were a chain of 10-12 bytes of another value in the other .EXE and so on.

Are these just version identifiers or machine specific parameters or are there actual differences between the versions?

Some examples (same code, compiled on the same machine, just 1 minute apart so everything should be the same, both Release builds. Offsets are decimal.)

enter image description here

enter image description here

enter image description here


Solution

  • in reality the differences in your compiled application will not have any difference at the user or operation level - at the binary level they will have different job ids /GUIDS etc.

    also possibly defaulting authors (if you do not set the author for the program and you have visual studio set to default to the user's name this could change some visible binary)

    overall functionally you should not see any difference as the compilers are compiling to the .net framework using the same final objective.