Tuesday, March 15, 2005
Moving existing vss version controlled web projects to class lib

Yesterday I played the role of subversion salesman to our development team, and I wish svn had some sort of referral program :) I pretty much have our team sold on the value of svn, as well as moving away from web projects. We still have some learning to do before we implement it fully, but hope to have a sample svn repository setup later this week for a followup meeting. The biggest thing we need to brush up on are merging procedures and tools, since in my demo I was really fumbling around with that.

Out of the meeting, though, I did get the approval to move us off of web projects. So I took my manually modified .sln and .vbproj files and checked them into vss. Everything is working great. Until.... One of our developers was staging his new laptop and needed to get the whole project from VSS. I assumed with no web projects, it would go very smoothly. Nope. Can't get the projects that used to be web projects. Hmm, they aren't web projects anymore, so why not?

Come to find out, besides whats covered here, if your sln was controlled under vss, there are a few more steps that need to be done. Now, I couldn't really find anyone else doing this yet, so do this at your own risk. It seems to work here. The problem comes from the fact that the VS.Net VSS client adds more meta data that needs to be changed/removed. In the .sln file there are some values for SccProjectUniqueName, SccLocalPath, SccProjectName, and SccProjectEnlistmentChoice that need to be changed. I looked at another class lib and made the web projects match, and things seemed to work ok. So the final values looked something like this. (X being the number in the sln file)

  • SccProjectUniqueNameX = Folder\\file.vbproj
  • SccLocalPathX = .
  • SccProjectNameX : Removed the whole line
  • SccProjectEnlistmentChoiceX : Removed the whole line

After doing this and checking it all in it _seems_ to be working. If I find anything else that needs to be updated I'll update the post. Also, for those doing the same thing, the first step of the process is to add the "web" types to the class lib project. Here are the lines I added to my two files.

Added to C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\CSharpProjectItems\LocalProjectItems\LocalProjectItems.vsdir

..\CSharpAddWebFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2236|10|#2263|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4534|0|WebForm.aspx
..\CSharpAddWebServiceWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2243|20|#2266|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4521|0|Service.asmx
..\CSharpAddMobileWebFormWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2398|25|#2399|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4571|0|MobileWebForm.aspx
..\CSharpAddWebDataForm.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2380|45|#2381|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4559|0|DataForm.aspx
..\CSharpAddWebUserControl.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2378|55|#2379|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4558|0|WebUserControl.ascx
..\CSharpAddMobileWebUserControl.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2400|56|#2401|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4572|0|MobileWebUserControl.ascx
..\NewHTMPage.htm|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2042|60|#2280|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4528|0|HTMLPage.htm
..\Frameset.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2241|70|#2284|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4541|0|Frameset.htm
..\StyleSheet.css|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2314|80|#2315|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4544|0|StyleSheet.css
..\CSharpAddWebControlWiz.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2297|120|#2298|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4533|0|WebCustomControl.cs
..\CSharpAddGlobalASAX.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2304|160|#2305|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4542|8192|Global.asax
..\CSharpAddWebConfig.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|#2312|170|#2313|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4545|8192|Web.config

Added to C:\Program Files\Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\LocalProjectItems.vsdir

..\WebForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3062|10|#3063|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4533| |WebForm.aspx
..\WebService.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3032|20|#3033|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4516| |Service.asmx
..\MobileWebForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3127|25|#3128|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4562| |MobileWebForm.aspx
..\WebDataForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3094|55|#3095|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4552| |DataWebForm.aspx
..\WebUserControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3107|65|#3108|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4544| |WebUserControl.ascx
..\MobileWebUserControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3129|66|#3130|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4563| |MobileWebUserControl.ascx
..\StyleSheet.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3072|90|#3073|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4538| |StyleSheet.css
..\WebControl.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3060|130|#3061|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4532| |WebCustomControl.vb
..\WebConfiguration.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|#3076|180|#3077|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4540| |Web.config





Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):