我们有一些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都没有解决问题。
我会打开与微软的问题/票。 如果我能,我将发布一个答案。
整个程序优化(/ GL和/ LTCG)和/ MP不混合 - 链接器挂起。 我提出这个上连接 。
其结果是,它在VS2008已确认的bug; 联系PSS如果你想有一个修补程序; 和修复程序包含在VS2010。
如果你不能等那么久,关闭/ MP(慢编译)或/ LTCG(慢的代码)。
您是否使用XCOPY在你的脚本? 这表明用CMD / C包装XCOPY“..”作为解决方案。
如果不是的话,我建议你只让一个CPU工作,以缩小范围(即移除/ maxcpucount)这将排除任何形式的编译过程之间的竞争条件。
我有一个类似的问题,但与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。
你可以试试这个:打开菜单通过构建对话框 - >工具 - >选项 - >项目和解决方案 - >生成和运行
在这里,您可以设置“MSBuild项目生成输出的详细程度”来“诊断”。 也许这将提供关于什么错误的详细信息。
在同一对话框中可以设置“平行项目的最大数目构建” 1。也许这部作品围绕LINK.EXE“挂起”。
mspdbsrv.exe用于将所有调试信息合并到一个PDB文件。 mspdbsrv.exe的VS2005版本是越野车,它可能是在VS2005版本有一些相同的问题。 建筑前杀死它正在为一些人的差别。 我们将它添加到我们的构建,以及因为我们经常从未知PDB错误痛苦。