将项目从VS2008迁移到2012会改变二进制内容

本文关键字:改变 二进制 2012 项目 VS2008 迁移 | 更新日期: 2023-09-27 18:15:27

在不更改目标框架的情况下将项目从Visual Studio 2008迁移到2012,正在更改输出二进制文件的内容。

我正在使用MD5签名来比较文件内容。

E9A487940134689A3D8E3B42FB1A9DCD - VS2008编译11CC505F3B74A6B4AC5E9DB830F62B86 - VS2012编译

在转换过程中对项目所做的更改仅在一些源代码控制绑定中,并且没有更改源代码。

你知道为什么二进制内容会改变吗?

将项目从VS2008迁移到2012会改变二进制内容

不同版本的c#编译器支持不同的语言特性。有时,不同版本之间的工作方式存在显著差异(例如,c# 5对foreach迭代变量的捕获)。因此生成的输出将是不同的。Jon Skeet关于c#语言版本的文章是一个很好的概述。

VS2008默认使用c# 3。VS2012使用c# 5.

您可以在项目的属性中指定特定的语言版本。转到Build选项卡,选择Advanced按钮,然后从Language Version下拉菜单中选择。我假设这在VS2012中可用。我从2010年跳到了2013年,我使用的是2013年的UI。