.sln文件中的注释行

时间:2019-02-22 16:13:09

标签: sln-file

我正在尝试临时注释.sln文件中的某些行,但是出现错误: “ 所选文件是解决方案文件,但似乎已损坏,无法打开

根据this blog的注释是由“ ”完成的,但是当我注释掉GlobalSection的每一行(关于Team Foundation Server源代码控制绑定的部分)时,我遇到了以上错误。还有什么其他方法可以注释掉.sln中的行吗?

编辑-我要注释掉的部分:

GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 2
        SccEnterpriseProvider = {4BA58AB2-18FA-4D8F-95F4-32FFDF27D184C}
        SccTeamFoundationServer = http://oxy:8080/tfs/projects
        SccLocalPath0 = .
        SccProjectUniqueName1 = Accounts\\Accounts.vbproj
        SccProjectName1 = Accounts
        SccLocalPath1 = Accounts
EndGlobalSection

我尝试了这个,但是没有用:

#  GlobalSection(TeamFoundationVersionControl) = preSolution
#           SccNumberOfProjects = 2
#           SccEnterpriseProvider = {4BA58AB2-18FA-4D8F-95F4-32FFDF27D184C}
#           SccTeamFoundationServer = http://oxy:8080/tfs/projects
#           SccLocalPath0 = .
#           SccProjectUniqueName1 = Accounts\\Accounts.vbproj
#           SccProjectName1 = Accounts
#           SccLocalPath1 = Accounts
#    EndGlobalSection

附注:我尝试使用“ ”进行单行注释-可以。并且删除整个部分也可以。但是我不想删除它,只需评论一下即可。

1 个答案:

答案 0 :(得分:1)

我认为.sln文件中没有注释的正式定义。这取决于解析器

原则上,.sln文件是基于关键字(ProjectSectionEndGlobalSection)和结束符char的声明性文件。我看不到统一的格式说明。

MSBuild

所以我们不知道 Visual Studio 如何读取.sln文件,但是您可以在msbuild code中看到任何不以其中一个开头的行常量单词将不会输入该对象:

while ((str = ReadLine()) != null)
{
    if (str.StartsWith("Project(", StringComparison.Ordinal))
    {
        ParseProject(str);
    }
    else if (str.StartsWith("GlobalSection(NestedProjects)", StringComparison.Ordinal))
    {
        ParseNestedProjects();
    }
    else if (str.StartsWith("GlobalSection(SolutionConfigurationPlatforms)", StringComparison.Ordinal))
    {
        ParseSolutionConfigurations();
    }
    else if (str.StartsWith("GlobalSection(ProjectConfigurationPlatforms)", StringComparison.Ordinal))
    {
        rawProjectConfigurationsEntries = ParseProjectConfigurations();
    }
    else if (str.StartsWith("VisualStudioVersion", StringComparison.Ordinal))
    {
        _currentVisualStudioVersion = ParseVisualStudioVersion(str);
    }
    else
    {
        // No other section types to process at this point, so just ignore the line
        // and continue.
    }
}

Visual Studio

  

此博客评论由“#”完成

那是不准确的。您可以在任意位置添加,其中包含任何文本,而无需使用#,文件将保持正确。

因此,在 Visual Studio 中,您目前不知道正式格式,但是您需要“破坏”当前格式。

您可以尝试更改关键字,例如在开头添加一个字母。 根据我的尝试,特殊字符(例如#%)不会破坏您的关键字。