码迷,mamicode.com
首页 > 其他好文 > 详细

vs项目结构解析

时间:2016-08-15 22:22:49      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:

当我们用VS开发一个项目的时候,首先应该清楚用VS这个IDE生成的一些文件和文件夹是什么意思,起什么作用,什么场合下使用。

因为我使用的是VS2015,就以这个为例来进行一些说明:

首先要做的是更改你的操作系统,把隐藏的文件、文件夹显示出来,以完整的显示VS在生成一个项目时的完整文件、文件夹结构。

1、首先看到的是.sln文件和隐藏的.suo文件(.vs/你的解决方案名/版本/.suo)

Net解决方案下 .sln文件和.suo文件的解释:

When a Web site is created, a solution file (.sln) and a hidden solution user options file (.suo) are created. By default, these files are created in the My Documents/Visual Studio 2005/Projects folder. bcoz they are not required in the deployed website.

SLN ( own‘s the following details):

    * A list of the projects that are to be loaded into Visual Studio 2005
    * A list of project dependencies
    * Microsoft Visual SourceSafe information
    * A list of add-ins that are available 

SUO ( own‘s the following files):

    * The task list
    * Debugger break points and watch window settings
    * Visual Studio window locations 


        Visual Studio采用两种文件类型(.sln和.suo)来存储特定于解决方案的设置,它们总称为解决方案文件。为解决方案资源管理器提供显示管理文件的图形接口所需的信息
从而在每次继续开发任务时,不会因开发环境而分散精力;

       *.sln:(Visual Studio Solution) 通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。比如是生成Debug模式,还是Release模式,是通用CPU还是专用的等.

       ps:就是打开文件的索引,正确引导你进入环境,进入工程!


       *.suo: (solution user options) 解决方案用户选项记录所有将与解决方案建立关联的选项,
以便在每次打开时,它都包含您所做的自定义设置。比如VS布局,项目最后编译的而又没有关掉的文件(下次打开时用)
    

        ps:大概就是保存一些与代码本身无关的一些配置.


       *.suo 是一种文件的格式。它是很重要的文件,

       *.suo 解决方案用户选项,记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含用户所做的自定义设置。

       它储存了用户界面的自定义配置,包括布局断点项目最后编译的而又没有关掉的文件(下次打开时用)等,以便于下一次你打开Visual Studio可以恢复这些设置,因此不要随便删除,所以不要管它们。 其实上面英文中解释已经很清楚了,要申明的是PDB中不带断点信息.  

  其中,VS布局包括:监视器1234的变量列表、断点标记及开关状态、输出窗口错误窗口等的分布及其悬浮状态,还有项目卸载状态标记。 
  *.suo文件偶尔会被破坏,从而在构建和编辑应用程序时出现意想不到的结果。如果Visual Studio对于每个解决方案不稳定,就应删除.suo文件。下次打开解决方案时,Visual Studio会重建它。

总结:

sln和suo文件共同组成了解决方案的记录和配置,VS解决方案中各种配置都存在这里,具体的每一个细节就不一一列举,以上可以给大家一个整体的认识。
    但是你需要清楚一个事实,那就是,sln和suo只是一个记录解决方案的相关信息的,详细的项目信息,在其他的文件中,这两个文件只是起一个组织的作用,将各个信息凝聚在一起,从而形成一个解决方案,方便项目开发。我们也没有必要细细的研究每一个细节,只不过在此有了这个整体上的认识,大家知道平时使用VS的基本工作记录都存于此文件中。
    所以,也不要随意的删掉这个你看似没用的文件,删掉代码也不会丢失,但是,有时候环境配置好后,使用也比较方便,对于这两个文件,没必要动它。为了减少项目文件的大小,和这两个文件没有关系,但是如果操作不当,会导致解决方案打不开。那么解决办法就只有重建项目,然后导入代码文件了,只是会浪费一些时间而已,又要重新组织项目文件。
    这两个文件是很基本的,大小都不大,但是对于组织解决方案确实起了很大的作用,建议不要随意手动去更改,在VS中操作后自然会对文件修改。

 2、接下来应该是一个一个的项目,windows下是以一个文件夹表示一个项目。

  Form1.cs  Form1.Designer.cs  Program.cs

1. 创建 Windows 窗体项目时,默认情况下,C# 会将一个窗体添加到项目中,并为其命名为 Form1。表示该窗体的两个文件称为 Form1.cs 和 Form1.Designer.cs。Form1.cs 中写入的是你自己的代码;Designer.cs 文件是C# Windows 窗体设计器自动写入代码的文件,这些代码用于实现所有通过从“工具箱”中拖放控件执行的操作。

Designer.cs 文件包含将控件拖动到窗体、在“属性”窗口中设置属性等操作时“窗体设计器”写入的源代码。通常,根本不应该手动编辑此文件。 

2. 一但当你自己动手修改了Designer.cs 文件, 或者是你在学习时, 拷贝了别人的Designer.cs 文件, 反正只要你的Form设值只要有一点点对不上Designer.cs 文件, C#将不会执行Designer.cs 文件. 

这就导致你的提示InitializeComponent不存在,但是对应的Form1.Designer.cs中有该方法。 

解决办法是重做一个Form, 让VS重新生成Designer.cs 文件,除非你特别熟悉Designer.cs 文件与Form的关系。

 

Form1.cs和Form1.Designer.cs其实是一个类,Visual Studio为了让我们方便管理,用partial关键字把窗体类给拆开了,Form1.Designer.cs存放的是窗体的布局,
你的窗体定义了哪些控件,那些控件的名字、属性等等,都是存放在Form1.Designer.cs里面的,而Form1.cs则是用来存放处理方法的,
比如你的按钮点击事件绑定了Button_Click这个方法,就会出现在Form1.cs里
其实在早期版本的Visual Studio里,是没有Form1.Designer.cs的,窗体的设计类和逻辑类全在一个文件里。
那么好处就显而易见了:便于管理。让你编程的时候能够更加直观。

 

3.Program.cs是程序入口,也就是Main函数。 

3、.cs  .csproj  .resx

  .cs:C Sharp Source File

  Form1.csproj文件大家应该不会陌生,那就是C#项目文件的扩展名,它是“C Sharp Project”的缩写。那么它究竟是给谁用的呢?那是给开发工具用的,例如我们在熟悉不过的Visual Studio,以及大家可以没有接触过,但是应该都听说过的MSBuild.exe。Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build和Post-Build需要哪些操作等等。Visual Studio和MSBuild都是开发工具,这就是csproj存在的唯一意义:为“开发环境”提供信息。而到了运行环境中,根本不会有人(操作系统?)关心所谓的csproj文件——也就是“程序是哪里来的”。

  Form1.resx: (窗体资源文件)你在设计窗体时所嵌入的资源, 用来存放你的窗体资源的,比如你自定义了你的窗体的图标,这个图标就会出现在Form.resx里面

vs项目结构解析

标签:

原文地址:http://www.cnblogs.com/binstyle/p/5774356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!