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

Vb.net VS Ultimate和Express编译器之间的差异,vb.net,visual-studio-2012,compiler-construction,Vb.net,Visual Studio 2012,Compiler Construction,在我工作的电脑上,我有Visual Studio Ultimate 2012的许可证,但在家里,我使用的是Visual Basic express,因为我并不真正需要大多数高级功能 然而,我想知道我用Ultimate创建的VB.NET版本与用Express创建的版本是否有区别 我认为测试很容易:只需使用两个版本构建它并比较.EXE文件。我注意到它们几乎一模一样,但我发现这里和那里几乎没有什么不同~相同值的10-12字节是另一个.EXE中另一个值的10-12字节链,依此类推 这些只是版本标识符或特

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

然而,我想知道我用Ultimate创建的VB.NET版本与用Express创建的版本是否有区别

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

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

一些示例(相同的代码,在同一台机器上编译,相隔1分钟,所以所有内容都应该相同,两个版本都是十进制的。)


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

也可能是默认作者(如果未设置程序的作者,并且将visual studio设置为默认用户名,则可能会更改某些可见的二进制文件)


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

通过编译器与您使用的Visual Studio版本无关。VisualStudio,无论其版本如何,都将使用相同的编译器。理论上,另一个IDE也可以使用NET编译器。这就是一个例子


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

假设两台计算机之间的所有service Pack、软件更新等都相同,则使用的编译器应该相同。我添加了一些示例。这是同一个项目,只在同一台计算机上用Express和Ultimate打开和编译过一次。MS没有理由为同一个语言发布两个编译器。您可能会发现这篇博文很有见地:。它处理的是C#,但我确信VB.NET编译器的工作原理非常相似,没有区别。这只是毫无意义的噪音。不同输出之间没有功能差异。