在VSS2005中导出VS2003 Web系统的问题
日前在处理运营报表系统(VS2003 Web系统)的一个故障的时候,我按照以下步骤从VSS中取出Web项目:
1. 获取最新版本到工作目录
2. 将WEB项目所在文件夹进行WEB共享,比如共享为http://localhost/REPORTSERVER
3. 打开解决方案文件sln,这时候很可能VS2003并不像我们期望的那样正常打开项目,而很是出现下面的界面
1) 仔细看发现http://localhost/REPORTSERVER_1这个路径并不是我们预先设定(http://localhost/REPORTSERVER)的。如果我们确定继续,你最终会VS2003在IIS的inetpub/www 目录下创建了REPORTSERVER_1目录并将VSS中的文件获取到了该目录。一般来说这并不是我们希望的。
2) 如果我们将路径改为http://localhost/REPORTSERVER,则VS2003出现以下错误
为什么会这样呢,如何才能按照我们希望从VSS中打开Web项目呢?以下是我的分析和尝试的方法:
原因:
Sln文件中包含了以下信息:
1)web配置信息:http://localhost/REPORTSERVER/REPORTSERVER.vbproj
2)VSS位置: $/1、开发库/.../V2.3.0/REPORTSERVER"u0022,"u0020IHHJAAAA
因此从sln文件打开解决方案时VS2003发现查找路径http://localhost/REPORTSERVER,发现该目录下(我们设定的工作目录)已经存在了一个Web项目,于是VS2003将该路径改为http://localhost/REPORTSERVER_1,如上面的截图所示。VS2003将在inetpub/www目录下自动创建该web应用系统,并根据项目的VSS位置将文件获取到该目录下。如果我们强制指定路径http://localhost/REPORTSERVER则VSS提示该目录下已经有Web项目存在,打开失败。
解决方法:
从上面的分析可以知道,sln文件包含了打开解决方案所需要的所有信息,因此我们可以采用以下步骤来从VSS中打开VS2003 Web项目
1、 获取最新版本到工作目录
2、 将Web项目的目录进行Web共享
3、 删除该目录中的所有文件,只保留Web目录(显然也可以通过其他方式实现此目的)
4、 从sln文件打开解决方案,VS2003会自动将web项目的所有文件取出到之前设定的目录
5、 需要特别注意的是,由于sln中的VSS路径并不一定是正确的版本路径(比如我们从2.3.2中拿出sln文件,但sln文件中的VSS路径却是2.3.0),因此此时打开的解决方案的VSS源码管理绑定信息可能是不正确的,我们需要检查每个项目的版本库路径并重新绑定到正确的路径下,否则有可能出现版本混乱的情况。