Click here to Skip to main content
Click here to Skip to main content

A small tool to remove SCC information of a VS2003.NET project file

By , 15 Jul 2004
 

Sample Image - RemoveSCCInfo.jpg

Introduction

With the yet to be released SourceSafe 2005, we decided to switch back to a SourceSafe database for some of our projects instead of a CVS repository. And saying that it have been quite a pain is not even beginning to come close to reality. Source-Code integration in VS.NET is not a nightmare, but you have to change your project files and delete a few other files to get rid of it. Failing to do so may get you in real trouble when rebinding to another SCC provider.

This "article" (OK, it may not be a great one, but that's my first one for Code Project) summarizes what I have found while building this tool, either by myself or on blogs and newsgroups.

Using the code

I decided to write this small tool to help getting rid of everything that is related to source-code control. It's quite straightforward to use: just enter the path to your project or solution file and click Continue, and it should work.

For now, there are (quite) a few limitations:

  • It does not handle Web Projects (I'll do it as soon as I can)
  • Only .csproj and .vbproj and deployment project (.vdproj) files are supported, and having any other type of project will block you from using this tool.
  • It doesn't change the Read-Only status of files that are not .sln, .csproj or .vbproj.

Points of Interest

Visual Studio keeps its SCC information in quite a few places. And if you want to get clean, you'll have to get rid of all of them.

The Solution File (.sln)

The solution file contains a section that is dedicated to SCC. If you open the .sln file in a text editor, you'll have something that looks like :

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

Just delete the GlobalSection(SourceCodeControl) ... EndGlobalSection and save the file.

The Solution User Options File (.suo)

I didn't find any real good solution besides deleting the file. But don't worry, VS.NET will create it back when you open the sln file.

The projects file (C# .csproj and VB.NET .vbproj)

Those files are XML based, so it won't really be hard to clean them. All you have to do is remove the following attributes on the main project node (which is named CSharp or VisualBasic):

  • SccProjectName
  • SccLocalPath
  • SccProvider
  • SccAuxPath
The setup projects files (.vdproj)

They are quite similar to the .csproj and .vbproj except on one point: they are not XML based. You'll have to remove the following lines :

"SccProjectName" = "XXXXXXXXXXXXXXXXXX"
"SccLocalPath" = "8:..\\.."
"SccAuxPath" = "8:"
"SccProvider" = "XXXXXXXXXXXXXXXXXX"
All the other stuff

Visual Studio creates a few files for managing the source code integration, so you'll have to delete those files:

  • In the same folder as the .sln file, you should find a solutionName.vssscc.
  • With the projects file, you'll have a projectFileName.projectExtension.vspscc.
  • You will also find some vssver.scc and mssccprj.scc in the project directory.

If you use MS SourceSafe as your source "database", you'll also find a vssver.scc file in each folder: delete them all if you want, but I didn't have any issues for not having done so.

History

  • v 0.9.3.0: Support for localhost-based asp.net projects
  • v 0.9.2.0: VDPROJ support, French chars in project and solution support.
  • v 0.9.0.0: First release, quite a few things yet to do.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

mcarbenay
Web Developer
France France
Member
I'm french, do I need to say more ?

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionDoes this work with VS2005?memberKeith Mallen21 Apr '08 - 9:19 
GeneralUse UnBind instead!memberalinconstantin21 Jul '07 - 7:44 
GeneralCool and fastmemberVastug7 Aug '06 - 2:24 
QuestionIs this the same as Unbind?memberGiles8 May '06 - 22:38 
GeneralThanksmemberj0ey2 May '06 - 4:35 
QuestionHas anyone had this working with VS2005.NET Projects?memberPeter Connors27 Apr '06 - 6:31 
GeneralSource Codememberanger66623 Feb '06 - 2:08 
GeneralRe: Source Codemembermcarbenay23 Feb '06 - 2:36 
GeneralRe: Source Codememberanger66623 Feb '06 - 2:44 
GeneralThanks: Question on VSS & the IDEmemberLen Miller1 Feb '06 - 3:30 
QuestionC++ projects?memberAnna-Jayne Metcalfe10 Jan '06 - 4:01 
AnswerRe: C++ projects?membermcarbenay10 Jan '06 - 4:52 
GeneralRe: C++ projects?memberAnna-Jayne Metcalfe10 Jan '06 - 8:47 
GeneralThanks!member-Dy20 Sep '05 - 23:37 
GeneralThanks a lotmemberGaben29 Jun '05 - 10:37 
GeneralHelp Translating the regular expression for use in VB.netmemberChubby Arse12 May '05 - 22:16 
GeneralRe: Help Translating the regular expression for use in VB.netmembermcarbenay12 May '05 - 23:43 
GeneralRe: Help Translating the regular expression for use in VB.netmemberChubby Arse16 May '05 - 5:18 
GeneralRe: Help Translating the regular expression for use in VB.netmembermcarbenay16 May '05 - 10:05 
GeneralVery coolmembermsureshkr14 Feb '05 - 8:46 
GeneralCoolmemberrico6519 Dec '04 - 23:59 
GeneralBackup leave directory when "don't backup" is torn onmemberMike Chaliy7 Oct '04 - 20:33 
GeneralRe: Backup leave directory when "don't backup" is torn onmembermcarbenay7 Oct '04 - 21:54 
GeneralRe: Backup leave directory when "don't backup" is torn onmemberGreg Norris24 Nov '05 - 11:39 
GeneralI don't know...membermracka22 Jul '04 - 19:49 
GeneralRe: I don't know...membermcarbenay29 Aug '04 - 11:55 
GeneralUnix way :=)memberblah@slaskpost.se13 Sep '07 - 21:17 
GeneralRe: I don't know...memberhappyspider3 Mar '05 - 22:31 
GeneralModification for VS2008memberperanb29 Jul '08 - 23:04 
Generalgr8memberTeeBee30317 Jul '04 - 6:00 
GeneralCool!!memberBrian Delahunty9 Jul '04 - 6:00 
GeneralThanks !!memberdeveloper20005 Jul '04 - 1:34 
GeneralRe: Thanks !!memberTom Fischer9 Jul '04 - 1:34 
GeneralThanks McarbenaymemberManish K. Agarwal29 Jun '04 - 17:56 
GeneralDoesn't support ASP.NET projects :-(staffNishant S27 Jun '04 - 19:56 
GeneralRe: Doesn't support ASP.NET projects :-(membermcarbenay28 Jun '04 - 4:15 
GeneralRe: Doesn't support ASP.NET projects :-(memberColin Angus Mackay28 Jun '04 - 8:57 
GeneralRe: Doesn't support ASP.NET projects :-(sussAnonymous1 Jul '04 - 5:37 
GeneralRe: Doesn't support ASP.NET projects :-(membermcarbenay2 Jul '04 - 10:16 
GeneralExcellentadminChris Maunder27 Jun '04 - 19:40 
GeneralRe: ExcellentstaffNishant S27 Jun '04 - 19:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 16 Jul 2004
Article Copyright 2004 by mcarbenay
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid