Строки комментариев в файле .sln - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь временно закомментировать некоторые строки в файле .sln, но получаю сообщение об ошибке: " Выбранный файл является файлом решения, но, похоже, поврежден и не может быть открыт "

Согласно этому блогу комментарии сделаны " # ", но когда я закомментирую каждую строку в GlobalSection (раздел о привязке управления исходным кодом Team Foundation Server), я получаю сообщение об ошибке выше,Есть ли другой способ закомментировать строки в .sln?

EDIT - раздел, который я хочу закомментировать:

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

PS: я попробовал однострочный комментарий, используя " # " - это работает.И удаление всего раздела также работает.Но я не хочу его удалять, просто закомментируйте.

1 Ответ

0 голосов
/ 25 февраля 2019

Не думаю, что в файле .sln есть официальное определение комментариев.Это зависит от парсера .

В принципе, файл .sln является декларативным файлом, основанным на ключевых словах (ProjectSection, EndGlobalSection) и символе конца строки,Я не вижу унифицированного описания формата.

MSBuild

Так что мы не знаем, как Visual Studio читает файл .sln, но вы можете видеть в код сборки , что любая строка, которая не начинается с одного из постоянных слов , не будет введена в объект:

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, в настоящее время вы не знаете официальный формат, но вам нужно «разбить» текущий формат.

Вы можете попробовать изменить ключевых слов , например, добавить письмо вих в начале.Из того, что я пробовал, специальные символы (такие как #, %) не ломают ваши ключевые слова.

...