为什么的MSBuild和LINK.EXE“挂”在构建过程?(Why is msbuild and l

2019-07-29 15:01发布

我们有一些C ++的解决方案和我们需要运行调用msbuild.exe每个在解决方案配置的批处理文件的一些构建脚本。

这已经在3吨开发的机器和一个构建机器工作正常,但随后的一个项目开始连接时挂起。 这只是发生是四核,2.8GHz的我认为最新的机器上。 它运行Windows Server 2003上,其余的是在XP或Vista。

这种情况持续,即使我更改顺序来建立在bat文件。

如果我从IDE那台机器上运行构建它不挂。

关于什么可能会造成这个任何想法?

我使用Visual Studio 2008。


编辑:

现在我看到,当它被挂在下面运行:

  • LINK.EXE(2个实例)的一个具有大的内存使用和一个与存储器使用量小。
  • vcbuild.exe
  • msbuild.exe
  • vcbuildhelper.exe
  • mspdbsrv.exe

编辑:

exe文件存在,因此不PDB文件。

EXE文件是由一些进程锁定,我不能删除或移动它。 我虽然可以删除PDB文件。

我也有这个问题,如果我只是用VCBuild.exe。

我决定尝试调试2个LINK.EXE过程和mspdbsrv.exe过程。

当我连接调试器/ MSDEV IDE给他们我得到一个消息框,指出应用程序已陷入僵局和/或“的所有线程都已经退出”。

我想我将不得不检查一个服务包为MSDEV该计算机上安装。


编辑:

在debug.htm输出文件中我得到的所有耍酷的输出产生LINK.EXE命令后。

然而,对于释放buildlog.htm的linke.exe行是最后一行。

这显然是在连接挂起。 这绝对是一个错误微软。

我现在想找出.RSP(连接响应)的文件是什么。

当我发出:

LINK.EXE @c:\\发布\ RSP00000535202392.rsp / NOLOGO / ERRORREPORT:队列

这是在释放生成日志的最后一行。 调试一个有很多以后的更多信息。

重新安装不同版本的Visual Studio都没有解决问题。

我会打开与微软的问题/票。 如果我能,我将发布一个答案。

Answer 1:

整个程序优化(/ GL和/ LTCG)和/ MP不混合 - 链接器挂起。 我提出这个上连接 。

其结果是,它在VS2008已确认的bug; 联系PSS如果你想有一个修补程序; 和修复程序包含在VS2010。

如果你不能等那么久,关闭/ MP(慢编译)或/ LTCG(慢的代码)。



Answer 2:

您是否使用XCOPY在你的脚本? 这表明用CMD / C包装XCOPY“..”作为解决方案。

如果不是的话,我建议你只让一个CPU工作,以缩小范围(即移除/ maxcpucount)这将排除任何形式的编译过程之间的竞争条件。



Answer 3:

我有一个类似的问题,但与Visual Studio 2010。

这是一个已经在另一台计算机上运行良好的一个项目,但是这不是我新的。 描述的症状匹配原来的Visual Studio 2008问题。

我能够通过安装在Visual Studio 2010 Service Pack 1中解决此问题(SP1)

http://www.microsoft.com/download/en/confirmation.aspx?id=23691 -或者只是去微软和搜索“的Visual Studio 2010 Service Pack 1的”

我跑我的Windows“检查更新”本来以为我已经安装了所有服务包,但显然,我没有安装任何Visual Studio的服务包。

安装VS2010 SP1后,我不再有这个问题。 我确定已经安装了VS2010和其他较旧的计算机与工作项目而回上的Service Pack 1。



Answer 4:

你可以试试这个:打开菜单通过构建对话框 - >工具 - >选项 - >项目和解决方案 - >生成和运行

在这里,您可以设置“MSBuild项目生成输出的详细程度”来“诊断”。 也许这将提供关于什么错误的详细信息。

在同一对话框中可以设置“平行项目的最大数目构建” 1。也许这部作品围绕LINK.EXE“挂起”。



Answer 5:

mspdbsrv.exe用于将所有调试信息合并到一个PDB文件。 mspdbsrv.exe的VS2005版本是越野车,它可能是在VS2005版本有一些相同的问题。 建筑前杀死它正在为一些人的差别。 我们将它添加到我们的构建,以及因为我们经常从未知PDB错误痛苦。



Answer 6:

您是否尝试过禁用增量链接,或者总是迫使全部重建?



文章来源: Why is msbuild and link.exe “hanging” during a build?