2014-11-03 62 views
1

我们正在使用TFS 2012来构建我们的解决方案。一旦完成,我使用构建输出来创建一些我在内部发布的NuGet包。我刚开始用符号构建这些包,以便我可以将这些NuGet符号包发布到我们的内部符号服务器。TFS构建DLL和PDB不匹配

但是,我无法将符号包发布到符号服务器。原因是DLL和PDB不匹配。我使用ChkMatch年龄属性在位于TFS Dropfolder发布目录中的DLL和PDB上有所不同。如果我从实际构建目录中的obj文件夹中获取PDB文件,则它们匹配。

现在我相信年龄属性会增加,因为我的构建过程模板具有属性“源和符号服务器设置>索引源”设置为True。

  1. 它是正确的,只是设置该属性为
  2. 会有什么不可预见的后果吗?
  3. 如果我使用NuGet发布我的符号,我可以忽略构建过程模板中的源代码和符号服务器设置?
+0

是你的任何PDB在源代码控制之下? – 2014-11-03 12:03:20

+0

不,我们的bin和obj文件夹没有签入TFS。 – openshac 2014-11-03 12:45:47

+0

如果你关闭索引,那么你的符号文件在任何地方都是无用的,但直接在构建服务器上。 – 2014-11-09 19:34:14

回答

0

年龄差异上调chkmatch是误导。如讨论here(底部注释部分),它不应阻止Visual Studio找到匹配的程序数据库文件(PDB)并加载符号。

我一直在为此苦苦挣扎,并认为年龄差异阻碍了我逐步完成索引的源代码。手边还有另一个问题,它让我走错了路。因此,在使用chkmatch来调试此类问题时,请注意关于年龄特性的差异。