debug和release的区别

在VS IDE中C#编写出来的程序,工程路径下除了源代码,还有什么东西?那些东西都是做什么用的?

Debug版和Release版本之间到底有什么区别?

要解决后一个问题,我想先把前一个问题说清楚。

obj文件夹是object的缩写,用于存放编译过程中生成的中间临时文件, 其中都有debug和release两个子目录,分别对应调试版本和发行版本, 在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。

  • obj是object的缩写,用于存放编译过程中生成的中间临时文件, 其中都有debug和release两个子目录,分别对应调试版本和发行版本, 在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。
  • Poperties文件夹 定义程序集的属性,项目属性文件夹一般只有一个。
  • AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。
  • .cs 类文件。源代码都写在这里。
  • .resx 资源文件,一些资源存放在这里,一般不需要看。
  • .csproj C#项目文件,用VS打开这个文件,就可以直接打开这个项目,自动生成。
  • .csproj.user 是一个配置文件,自动生成的,会记录项目生成路径、项目启动程序等信息。
  • .Designer.cs 设计文件,自动生成。
  • .aspx 是网页文件,HTML代码写在这里面。
  • .sln:在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合

Debug版和Release版本之间到底有什么区别?

Debug版: 
经过编译器编译出的项目.exe文件大,而且生成的二进制命令没有经过编译器的优化。项目中包含着丰富的调试信息,供programer调试程序。这就是为什么,当我们在Debug程序的时候,为什么程序就会在我们设置断电的地方自动停下,而且仿佛时间静止,还可以显示此时相关变量的状态。

Release版: 
这个版本是的出发点是用户,所以不保存调试信息,编译器在编译的时候进行了各种优化,进而达到,代码文件最小,执行速度最优。

实际上,Debug 和 Release 并没有本质的界限,并不是非黑即白的。他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的Debug版,或是带有调试信息的Release版。

后记: 
写着个的时候,还在考虑要不要,明确出来我说的是C#项目。写完之后才发现,完全没有必要。其实这是一个IDE使用者对一个IDE的盲人摸象似的分析。没必要纠结于IDE也没必要纠结于C++还是C#,道理是一样的。

猜你喜欢

转载自blog.csdn.net/wsqplsh/article/details/78713287