VS.NET:启用源服务器支持;无法从源服务器检索源文件

时间:2010-02-12 10:16:08

标签: visual-studio-2008 visual-sourcesafe symbols symbol-server source-server

我为我当前的一个项目设置了一个符号服务器。 在夜间建造中我:

  • 构建我的来源
  • 将标签应用于构建
  • 中使用的源文件
  • 使用必要信息索引pdb文件
  • 将pdb文件存储在MS符号服务器

(事实上,我已经遵循了这篇文章:Source Server helps you kill bugs

现在,我已经引用了在其他项目中发布其符号的DLL。 我调试该项目,我想进入已发布调试符号的项目代码。

我已经设置了VS.NET,因此启用了Source Server支持。 当我调试我的项目时,我可以看到(在模块窗口中)我的引用项目的符号确实已经加载。 当我想进入一个源自引用的DLL的方法时,VS.NET会弹出警告,我必须确认VS.NET确实可以执行命令从源服务器获取源代码。

命令如下所示:

ss.exe get -GL"c:\Users\... -GF -I-Y -W "$/MyProject/Source/..." -VL"specificversion"

(我已经省略了简洁的完整路径)。

当我运行命令时,我收到错误“没有源代码可用”。

当我在命令行上执行该命令时,出现错误:

  

无效的DOS路径

当目标路径不存在时,似乎VSS返回此错误。实际上,我的磁盘上不存在应该放置检索到的源文件的本地路径。 VSS应该创建它。

如何确保VS.NET发出命令,以便在从源服务器检索源代码时创建目标路径?

修改 在我的任务中,我已经设法进一步了解。 在我的源服务器计算机上,我编辑了vss.pm文件,并且我已经更改了写在PDB文件中的'stream'内存在的VSS_EXTRACT_CMD变量中的命令。 我把(Perl?)代码更改为:

push(@stream, "VSS_EXTRACT_CMD=if not exist %vsstrgdir% mkdir %vsstrgdir% | ss.exe get ".
                                   "-GL\"%vsstrgdir%\" -GF- -I-Y ".
                                   "-W \"\$/%var3%\" -VL\"%var4%\"");

所以,事实上我已经添加了'if not exists ... mkdir ...'部分,我用管道(|)分隔了两个命令。

在VS.NET中,我已经指定VS.NET发出的SourceServer命令也应该写在输出窗口中。 因此,当我复制在输出窗口中找到的命令,并在命令提示符下执行该命令时,将创建目录并检索文件。 \ O /

不幸的是,当VS.NET执行此操作时,不会检索该文件,并且还没有创建该目录... 关于问题可能是什么想法?

修改 我已经在Windows XP机器上测试了它,并且它可以工作。 我在办公室使用Windows Vista,而在Vista上,它不起作用。 似乎VS.NET不允许创建目标目录?

0 个答案:

没有答案