在 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 源码管理绑定信息可能是不正确的,我们需要检查每个项目的版本库路径并重新绑定到正确的路径下,否则有可能出现版本混乱的情况。