在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#,道理是一样的。