我正在尝试临时注释.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
附注:我尝试使用“ #”进行单行注释-可以。并且删除整个部分也可以。但是我不想删除它,只需评论一下即可。
答案 0 :(得分:1)
我认为.sln
文件中没有注释的正式定义。这取决于解析器。
原则上,.sln
文件是基于关键字(ProjectSection
,EndGlobalSection
)和结束符char的声明性文件。我看不到统一的格式说明。
所以我们不知道 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 中,您目前不知道正式格式,但是您需要“破坏”当前格式。
您可以尝试更改关键字,例如在开头添加一个字母。
根据我的尝试,特殊字符(例如#
,%
)不会破坏您的关键字。