vs2013怎么清理解决方案_VS2013 解决方案文件结构分析

http://www.cnblogs.com/haogj/p/4248030.html

Visual Studio 的解决方案文件是一个文本文件,其中的内容不是太复杂,有些时候 Visual Studio 会把这个文件搞乱,理解一下这个文件的结构,对我们处理一些异常情况有所帮助。

# 表示注释行

版本信息

Microsoft Visual Studio Solution File:用来说明解决方案文件的版本号,12.00 说明是 VS2013 的解决方案文件。

VisualStudioVersion:打开这个解决方案文件需要的 Visual Studio 版本号

MinimumVisualStudioVersion:能够打开这个解决方案的最低 Visual Studio 版本号。

下面是一个解决方案文件的示例。

Microsoft Visual Studio Solution File, Format Version 12.00

# Visual Studio 2013

VisualStudioVersion = 12.0.31101.0

MinimumVisualStudioVersion = 10.0.40219.1

项目

解决方案中包含若干个项目,每个项目有一个 Project 的说明。

Project( 项目在解决方案中的编号=显示名称, 实际路径, 项目唯一标识  )

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication22",

"ConsoleApplication22\ConsoleApplication22.csproj",

"{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}"

EndProject

项目唯一标识来自项目文件,在 ConsoleApplication22.csproj 文件中可以找到如下说明。

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}

解决方案文件夹

如果是解决方案文件夹, 则实际路径与显示名称一致。

比如,在解决方案中创建了一个名为 NewFolder1 的解决方案文件夹。

在解决方案文件中就会多出来一个特殊的 Project。

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NewFolder1",

"NewFolder1",

"{86426712-B46D-4FBB-B5CD-28376414DD94}"

EndProject

所以,我们可以理解为什么解决方案文件夹不能嵌套了。

如果我们在解决方案文件夹中创建了一个项目。

项目的说明示例如下。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1",

"NewFolder1\ClassLibrary1\ClassLibrary1.csproj",

"{DD66205E-FEB8-42C5-BF26-55A48274E65C}"

EndProject

那么,在解决方案文件中中的 Global 节中,会多出来一个 GlobalSection(NestedProjects) = preSolution

GlobalSection(NestedProjects) = preSolution

{DD66205E-FEB8-42C5-BF26-55A48274E65C} = {86426712-B46D-4FBB-B5CD-28376414DD94}

EndGlobalSection

你会看到前面是项目的标识,等号的后面就是解决方案文件夹的标识。这个嵌套的 NestedProjects 用来说明使用解决方案文件夹组织的项目。

Global 配置节

在所有 Project 说明之后,应该存在一个 Global 配置节

Global

GlobalSection(SolutionConfigurationPlatforms) = preSolution

Debug|Any CPU = Debug|Any CPU

Release|Any CPU = Release|Any CPU

EndGlobalSection

GlobalSection(ProjectConfigurationPlatforms) = postSolution

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Debug|Any CPU.Build.0 = Debug|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Release|Any CPU.ActiveCfg = Release|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Release|Any CPU.Build.0 = Release|Any CPU

EndGlobalSection

GlobalSection(SolutionProperties) = preSolution

HideSolutionNode = FALSE

EndGlobalSection

EndGlobal

可以看到有三个部分组成

整个解决方案的配置信息在 SolutionConfigurationPlatforms 中。

GlobalSection(SolutionConfigurationPlatforms) = preSolution

Debug|Any CPU = Debug|Any CPU

Release|Any CPU = Release|Any CPU

EndGlobalSection

每个项目的平台配置信息在 ProjectConfigurationPlatforms 中。

GlobalSection(ProjectConfigurationPlatforms) = postSolution

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Debug|Any CPU.Build.0 = Debug|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Release|Any CPU.ActiveCfg = Release|Any CPU

{312AC167-D533-4A6C-B5F9-9CBA3280DDD8}.Release|Any CPU.Build.0 = Release|Any CPU

EndGlobalSection

项目的属性。

GlobalSection(SolutionProperties) = preSolution

HideSolutionNode = FALSE

EndGlobalSection

TFS 中特殊的 Global 配置节

如果使用 TFS 来管理项目,在 Global 配置节中会多出来一个 GlobalSection(TeamFoundationVersionControl) = preSolution 的配置节。

需要注意的是,这个多出来的配置节只能有一个,有的时候 TFS 会错误的多添加若干个,这时候,在打开项目的时候,你应该会看到如下的提示信息。

注意解决方案中实际包含的项目数量,多出来的 TeamFoundationVersionControl 配置节中项目数量一般不对。一般来说,保留第一个,将其他的删除就可以了。

下面是一个配置节的示例。

GlobalSection(TeamFoundationVersionControl) = preSolution

SccNumberOfProjects = 25

SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}

SccTeamFoundationServer = http://tfs.xxxxxxx.com:8080/tfs/xxxxxxx

SccLocalPath0 = .

SccProjectUniqueName1 = xxx\\yyy\\zzz.csproj

SccProjectTopLevelParentUniqueName1 = ttt.sln

SccProjectName1 = xxx/yyy

SccLocalPath1 = xxx\\yyy

EndGlobalSection

其中

SccNumberOfProjects 是说明在 TFS 管理之下共有多少个项目。

SccTeamFoundationServer:TFS 服务器的地址。

SccLocalPath0:源代码管理器的本地目录

具体解决方案中的项目再分别列出来,每个项目占 4 行。

SccProjectUniqueName1:项目的路径

SccProjectTopLevelParentUniqueName1:就是解决方案的名称

SccProjectName1:项目的名称,注意已经包含了项目文件夹前缀

SccLocalPath1:保存在本地的项目路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值