Srctool.exe在TFS中返回-1错误代码

Srctool.exe在TFS中返回-1错误代码,tfs,tfsbuild,Tfs,Tfsbuild,我们刚刚第一次设置了TFS11。运行门控签入时,它会成功,但会返回以下消息: “srctool.exe”返回了意外的退出代码:“-1”。错误 打开文件“CustomDllName.dll”时发生:程序集 “CustomDllName.dll”不是有效的.NET程序集,将被跳过 用于分析 嗯,这是对的:该文件是一个遗留的Visual Basic 6 DLL,我们无法对其进行太多控制。它包含在项目中,用于COM访问某些方法 检查时是否有方法指示srctool.exe/TFS跳过该文件?还是另一种攻击

我们刚刚第一次设置了TFS11。运行门控签入时,它会成功,但会返回以下消息:

“srctool.exe”返回了意外的退出代码:“-1”。错误 打开文件“CustomDllName.dll”时发生:程序集 “CustomDllName.dll”不是有效的.NET程序集,将被跳过 用于分析

嗯,这是对的:该文件是一个遗留的Visual Basic 6 DLL,我们无法对其进行太多控制。它包含在项目中,用于COM访问某些方法


检查时是否有方法指示srctool.exe/TFS跳过该文件?还是另一种攻击方法?

这是已发布的IndexSources活动中的srctool.exe错误吗?此活动中的srctool.exe只做一件事,即在pdb中列出源文件信息。我不是srctool专家,所以我不知道为什么在这种情况下它会失败。我知道srctool.exe在版本11中有一些行为上的改变,其中大部分是以前版本的修复

有一种解决方法需要对生成模板进行udpating。这不是很好,但很管用。Srctool.exe针对SymbolFiles集合中的每个pdb文件运行(在IndexSources活动中)。现在您已经知道哪个pdb失败了,可以更新生成模板,在IndexSources活动之前添加一个R活动,以从SymbolFiles集合中删除出现问题的pdb。这是迄今为止我能想到的最简单的解决方法

或者,您可以编辑FindMatchingFiles活动的搜索模式,以排除不希望对源进行索引的pdb文件

根据您收到的错误消息,它似乎与Ed提到的已知问题无关。我们在下一个版本中修复了这个问题,因此如果它是相关的,那么应该修复:-)

如果您对VS11 Beta版的构建模板有任何问题,请告诉我

谢谢。

这是最终对我有效的解决方案 微软TFS11团队的一名成员向我提到,问题是由于Windows 8团队对
srctool.exe
工具的行为发生了变化


通过从(WinDBG)工具包中复制这个文件并覆盖TFS11beta中包含的文件,我能够成功地运行一个构建,没有任何错误

您可以打开构建过程模板并编辑SrcTool可执行文件的参数,我怀疑(还没有检查)它需要$(OutDir)***.dll或类似的东西。并将其更改为以某种方式排除Dll的内容。或者您无法将旧的COM dll作为生成输出文件夹的一部分。是的-这似乎是团队正在解决的一个已知问题。@EdBlankenship,谢谢。您是否有ETA或链接以获取更多信息?是否有临时解决方案或修补程序?@msigman Yes-Duat在下面提供了有关解决方案的更多信息。谢谢。我认为你的思路是对的。我无法找到导致
FindMatchingFiles
排除文件的模式。你能推荐一个吗?另外,我无法使
RemoveFromCollection
工作,因为它需要一个集合输入,但
symbolFiles
只是一个IEnumerable。非常感谢您的帮助!不幸的是,即使在从项目中删除旧DLL之后,仍会返回相同的消息:“srctool.exe”返回意外的退出代码:“-1”。