Для создания проектов Biztalk 2009 как части коллективной сборки TFS 2010 Я использую задачу MSBuild exec для развертывания devenv.exe в VS2008 следующим образом:
<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 Framework.Это, казалось, имело смысл, так как сборочной машиной, которую я использовал ранее, был 7-летний динозавр, у которого были различные проблемы, пока я им владел.(~ 2 года)
Я закончил подготовку новой виртуальной машины для запуска своих сборок Biztalk 2009, чтобы я мог полностью удалить этот старый физический сервер.Однако, к моему большому огорчению, я обнаружил, что примерно на 5% времени на новом сервере я сталкиваюсь с той же случайной ошибкой CLR.
Исходя из этого, я предполагаю, что это какой-то дефект.NET Framework, который я не смогу исправить.Но если у кого-то есть идеи, я весь в ушах.