VS Ultimate和Express编译器之间的差异

时间:2014-01-10 09:35:22

标签: vb.net visual-studio-2012 compiler-construction

在我工作的电脑上,我有Visual Studio Ultimate 2012的许可证,但在家里我使用的是Visual Basic express,因为我并不需要大多数高级功能。

但是我想知道我使用Ultimate创建的VB.NET构建与使用Express构建的构建是否存在差异。

我认为测试很容易:只需使用两个版本构建它并比较.EXE文件。我注意到它们几乎完全相同,但在这里和那里我发现差别很小。相同值的~10-12个字节是另一个.EXE中另一个值的10-12个字节的链,依此类推。

这些只是版本标识符或机器特定参数还是版本之间存在实际差异?

一些例子(相同的代码,在同一台机器上编译,相隔1分钟,所以一切都应该相同,两个版本都是。版本。偏移是小数。)

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

.NET编译器实际上几乎是开源的,通过Microsoft Shared Source Initiative编译器与您正在使用的Visual Studio版本无关。 Visual Studio,无论其版本如何,都会使用相同的编译器。从理论上讲,另一个IDE也可以使用.NET编译器。 SharpDevelop就是这样一个例子。

构建结果取决于某些本地计算机属性,因此即使您在两台计算机中都使用Visual Studio Ultimate,也会发现差异。

答案 1 :(得分:1)

实际上,编译应用程序的差异在用户或操作级别上没有任何区别 - 在二进制级别,它们将具有不同的作业ID / GUID等。

也可能默认作者(如果您没有为该程序设置作者,并且您将visual studio设置为默认为用户名,这可能会更改一些可见的二进制文件)

从功能上来说,你不应该看到任何差异,因为编译器使用相同的最终目标编译到.net框架。