要将Biztalk 2009项目构建为TFS 2010团队构建的一部分,我正在使用MSBuild可执行任务将VS2008 devenv .exe像这样...使用VS2008在命令行构建Biztalk 2009解决方案时出现的“随机”.NET运行时错误devenv.exe
<Exec Command=""$(BuildMachineLoc)devenv.exe" "$(BiztalkSolutionPath)" /Build "$(BuildFlavor)" /out "$(DropLocation)\$(BuildNumber)\CoreBiztalkBuildOutputLog.txt""/>
这可以在95%左右的时间内正常工作。然而,随机生成会失败,并在日志中出现以下错误。 (我编辑这个稍微忽略我建设服务的名称)
Build FAILED.
MSB3073: The command ""C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" "[path to my solution]" /Build "Release" /out "[path to my drop location]\CoreBiztalkBuildOutputLog.txt"" exited with code -2146233082.
如果检查CoreBiztalkBuildOutputLog.txt文件,它表明,一切都成功地建立。如果您比较此失败版本的日志和成功的版本,它们是相同的。
代码-2146233082是不是很描述性的,所以,我发现从构建机器上的事件查看器的实际例外。
Event Type: Error
Event Source: .NET Runtime
Event Category: None
Event ID: 1023
Date: 2/17/2012
Time: 2:58:41 AM
User: N/A
Computer: XXXXXXXX
Description:
.NET Runtime version 2.0.50727.3625 - Fatal Execution Engine Error (7A0BC59E) (80131506)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
在网络上的一点点戳表明这是某种CLR错误。建议的解决方案是重新安装\修复.NET框架。这似乎是有道理的,因为我以前使用的造型机是一只7岁的恐龙,只要我拥有它,它就有各种各样的问题。 (〜2年)
我最终提供了一个新的虚拟机来运行我的Biztalk 2009版本,这样我就可以完全退出那台旧的物理服务器。不过,对于我的懊恼,我发现在5%的时间里,我在新服务器上遇到了同样的随机CLR错误。
基于此我猜测是这是.NET框架中的某种缺陷,我无法修复。但如果任何人有任何想法,我都耳熟能详。
是否有一个特定的原因,为什么你EXEC devenv.exe建立你的解决方案,而不是使用[MSBuild任务](http://msdn.microsoft.com/en-us/library/z7f65y0d%28v=vs.90 %29.aspx)? – Filburt 2012-02-17 14:57:58
我不是100%确定的,因为这是由以前的Biztalk管理员实施的。不过,我相信要用流水线,编排等构建Biztalk 2009解决方案,您必须使用Visual Studio构建它们。 (就像你必须exec'ing出来的devenv.exe构建Visual Studio安装项目。) – 2012-02-17 15:18:59
我使用的MSBuild任务来构建我的BizTalk项目(不解决方案),它工作正常。从我看到的设置项目可能是一个不同的群体。 – Filburt 2012-02-17 15:29:32