65.9K
CodeProject 正在变化。 阅读更多。
Home

一个小工具,用于移除 VS2003.NET 项目文件的 SCC 信息

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.73/5 (25投票s)

2004年6月27日

3分钟阅读

viewsIcon

195100

downloadIcon

1343

此工具移除 VS2003.NET 的项目和解决方案文件中保存的、与源代码控制相关的信息。

Sample Image - RemoveSCCInfo.jpg

引言

由于即将发布的 SourceSafe 2005,我们决定将一些项目切换回 SourceSafe 数据库,而不是 CVS 存储库。 而说这很痛苦,都远远不足以形容现实情况。 在 VS.NET 中集成源代码不是一场噩梦,但您必须更改项目文件并删除一些其他文件才能摆脱它。 如果不这样做,当重新绑定到另一个 SCC 提供程序时,可能会给您带来真正的麻烦。

这篇“文章”(好吧,它可能不是一篇好文章,但这是我在 Code Project 上的第一篇文章)总结了我在构建这个工具时发现的东西,无论是我自己还是在博客和新闻组上发现的。

Using the Code

我决定编写这个小工具,以帮助摆脱与源代码控制相关的所有内容。 它非常易于使用:只需输入项目或解决方案文件的路径,然后单击“继续”,它就可以工作了。

目前,存在(相当多的)一些限制

  • 它不处理 Web 项目(我会尽快处理)。
  • 仅支持.csproj.vbproj 和部署项目 (.vdproj) 文件,拥有任何其他类型的项目都会阻止您使用此工具。
  • 它不会更改不是 .sln.csproj.vbproj 的文件的只读状态。

关注点

Visual Studio 将其 SCC 信息保存在很多地方。 如果您想清理干净,您必须摆脱所有这些信息。

解决方案文件 (.sln)

解决方案文件包含一个专用于 SCC 的部分。 如果您在文本编辑器中打开 .sln 文件,您会看到类似这样的内容

Microsoft Visual Studio Solution File, Format Version 8.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyProject", 
    "Projects\MyProject.csproj", "{B1A1C06F-EB84-4215-975E-6B0B57496BAC}" 
        ProjectSection(ProjectDependencies) = postProject 
        EndProjectSection
EndProject 
        ... other projects in your solution ...
Global
    GlobalSection(SourceCodeControl) = preSolution
        SccNumberOfProjects = 1
        SccProjectName0 = Perforce\u0020Project
        SccLocalPath0 = .
        SccProvider0 = MSSCCI:Perforce\u0020SCM
        CanCheckoutShared = true
        SolutionUniqueID = {0F9ACC79-634F-44DB-9C57-C4B0C461AA7B}
        SccProjectUniqueName1 = Projects\\MyProject.csproj
        SccLocalPath1 = MyProject
    EndGlobalSection
        ... other global sections ...        
EndGlobal

只需删除 GlobalSection(SourceCodeControl) ... EndGlobalSection 并保存文件。

解决方案用户选项文件 (.suo)

除了删除文件外,我没有找到任何真正好的解决方案。 但不要担心,当您打开 sln 文件时,VS.NET 会重新创建它。

项目文件(C# .csproj 和 VB.NET .vbproj)

这些文件是基于 XML 的,因此清理它们并不难。 您所要做的就是删除主项目节点(命名为 CSharp 或 VisualBasic)上的以下属性

  • SccProjectName
  • SccLocalPath
  • SccProvider
  • SccAuxPath

安装项目文件 (.vdproj)

它们与 .csproj.vbproj 非常相似,只是有一点不同:它们不是基于 XML 的。 您必须删除以下行

"SccProjectName" = "XXXXXXXXXXXXXXXXXX"
"SccLocalPath" = "8:..\\.."
"SccAuxPath" = "8:"
"SccProvider" = "XXXXXXXXXXXXXXXXXX"

所有其他内容

Visual Studio 创建了一些用于管理源代码集成的文件,因此您必须删除这些文件

  • 在与 .sln 文件相同的文件夹中,您应该找到一个 solutionName.vssscc
  • 对于项目文件,您将拥有一个 projectFileName.projectExtension.vspscc
  • 您还将在项目目录中找到一些 vssver.sccmssccprj.scc

如果您使用 MS SourceSafe 作为您的源代码“数据库”,您还会在每个文件夹中找到一个 vssver.scc 文件:如果您想,可以删除它们,但即使不这样做,我也没有遇到任何问题。

历史

  • v 0.9.3.0:支持基于 localhost 的 ASP.NET 项目
  • v 0.9.2.0:VDPROJ 支持,项目和解决方案支持中的法语字符
  • v 0.9.0.0:第一个版本,还有很多事情要做

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.