Visual Studio 2015高级编程(第6版)
上QQ阅读APP看书,第一时间看更新

6.2 解决方案文件的格式

Visual Studio 2015实际上为解决方案创建两个文件,其扩展名分别为.suo和.sln(解决方案文件)。第一个文件是难以编辑的二进制文件,它包含了与用户相关的信息。例如,解决方案在上一次关闭时打开的文件和断点的位置。该文件被标记为隐藏,因此在使用Windows Explorer时,它不会在解决方案文件夹中显示,除非启用了显示所有隐藏文件的选项。

警告:.suo文件偶尔会被破坏,从而在生成和编辑应用程序时出现意想不到的结果。如果Visual Studio对于某个解决方案不稳定,就应退出并删除.suo文件。下次打开解决方案时,Visual Studio就会重建它。

.sln解决方案文件包含了与解决方案相关的信息,如项目列表、生成配置和其他非项目相关的设置。与Visual Studio 2015使用的其他文件不同,解决方案文件不是XML文档,因为它把信息存储在块中,如下面的示例解决方案文件所示:

      Microsoft Visual Studio Solution File, Format Version 12.00
      # Visual Studio 14
      VisualStudioVersion = 14.0.22310.1
      MinimumVisualStudioVersion = 10.0.40219.1
      Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")= "SampleWPFApp",
          "SampleWPFApp\SampleWPFApp.csproj",
          "{F745050D-7E66-46E5-BAE2-9477ECAADCAA}"
      EndProject
      Global
          GlobalSection(SolutionConfigurationPlatforms)= preSolution
              Debug|Any CPU = Debug|Any CPU
              Release|Any CPU = Release|Any CPU
          EndGlobalSection
          GlobalSection(ProjectConfigurationPlatforms)= postSolution
              {F745050D-7E66-46E5-BAE2-9477ECAADCAA}.Debug|Any
                       CPU.ActiveCfg = Debug|Any CPU
              {F745050D-7E66-46E5-BAE2-9477ECAADCAA}.Debug|Any
                       CPU.Build.0 = Debug|Any CPU
              {F745050D-7E66-46E5-BAE2-9477ECAADCAA}.Release|Any
                       CPU.ActiveCfg = Release|Any CPU
              {F745050D-7E66-46E5-BAE2-9477ECAADCAA}.Release|Any
                       CPU.Build.0 = Release|Any CPU
          EndGlobalSection
          GlobalSection(SolutionProperties)= preSolution
              HideSolutionNode = FALSE
          EndGlobalSection
      EndGlobal

上面的示例解决方案由一个SampleWPFApp项目和一个用于概述解决方案设置的Global部分组成。例如,HideSolutionNode被设置为FALSE,因此该解决方案在Solution Explorer中可见。如果要把这个值改为TRUE,就不会在Visual Studio中显示该解决方案名。

注意前面代码中的版本号是12.00,在Visual Studio 2012、2013和2015中都使用它。这与如下事实一致:同一个解决方案文件可以使用Visual Studio的以前版本打开。