小编Jim*_*key的帖子

使用符号服务器/源索引来调试Visual Studio中的生成

我正在使用Visual Studio 2013和Team Foundation Server 2013.我有这些,以及在我的个人计算机上运行的构建控制器/代理,称为"FUSROHDAH".

我的目标是获取由TFS构建代理生成的构建并在Visual Studio中打开它以进行调试,并让它利用源索引PDB从TFS源代码控制系统访问源代码,以便我可以逐步执行代码.我研究过几篇关于PDB和源索引的文章,包括:

Ed Squared在TFS 2010中关于源服务器和符号服务器支持的文章

John Robbins关于PDB文件的文章

我还观看了John Robbins关于WintellectNOW的非常出色的视频,该视频讨论了设置符号服务器,源索引的许多细微差别.

然而,尽管有几天的头发拉动,我还没有能够使这个工作.

我已经设置了TFS用于持续集成.这是我的设置:

在Build Definition-> Build Defaults中,我将Staging Location设置为"将构建输出复制到以下drop文件夹(UNC路径,例如\ server\share)":

\\ fusrohdah\builds(这相当于我机器上的c:\ builds)

构建定义 - >过程模板设置:

发布符号的路径:\\ fusrohdah\symbols \(这相当于我机器上的c:\ symbols)

我注意到TFS 2013中的默认流程模板与讨论TFS 2010的文章有所不同.在Ed Squared的文章中,有一个"索引源"选项.在TFS 2013中,此设置消失了,在说明文本中,它显示"指定符号存储共享的路径.设置此值时,源索引是构建的一部分." 因此,我假设我的构建上运行了源索引,只需指定此位置即可.

所以我采用一个简单的控制台应用程序HelloWorld,然后执行一系列更改和签入.我观察到构建文件正如我所期望的那样发布到builds文件夹,并且EXE和PDB文件并排.

所以我想在Visual Studio中使用较旧的构建并对其进行调试,并逐步完成从TFS源索引获得的源代码.我在Visual Studio中打开EXE并按F11启动控制台应用程序并开始进入Main()过程中的代码.但是,当发生这种情况时,我收到以下消息:

--------------------------- Microsoft Visual Studio -------------------- -------源文件:C:\ builds\2\LocalTestProject\HelloWorld\src\HelloWorld\HelloWorld\Program.cs

模块:C:\ builds\HelloWorld\HelloWorld_20140722.6\HelloWorld.exe

过程:[6016] HelloWorld.exe

源文件与构建模块时不同.您希望调试器还能使用它吗?

这似乎是我问题的症结所在.我的理解是,当Visual Studio读取我的PDB文件时,它应该执行TF.exe以从TFS获取正确版本的源代码,并且似乎未能这样做.我使用PDBStr.exe来查看构建发布的PDB文件,似乎没有任何问题:

c:\builds\HelloWorld\HelloWorld_20140722.6>pdbstr -r -p:helloworld.pdb -s:srcsrv

SRCSRV: ini ------------------------------------------------
VERSION=3
INDEXVERSION=2
VERCTRL=Team Foundation Server
DATETIME=Tue Jul 22 23:04:51 2014
INDEXER=TFSTB
SRCSRV: variables ------------------------------------------
TFS_EXTRACT_CMD=tf.exe …
Run Code Online (Sandbox Code Playgroud)

tfs tfsbuild visual-studio-2013 tfs2013

7
推荐指数
1
解决办法
3146
查看次数

标签 统计

tfs ×1

tfs2013 ×1

tfsbuild ×1

visual-studio-2013 ×1