У меня есть сценарий сборки, который начинается в Visual Studio из командной строки следующим образом:Visual Studio 2015 код выхода 0xE0434352
devenv.exe <project file> /Rebuild "Release" /Project <project name> /UseEnv /Out <log file>
По завершении скрипт проверяет код выхода из Visual Studio.
Мы обновили с Visual Studio 2010 до 2015 года. Большинство проектов скомпилированы без проблем, но некоторые выходят с кодом 0xE0434352, который, я считаю, является System.InvalidOperationException.
Журнал событий окна показывает две записи:
Faulting application name: devenv.exe, version: 14.0.24720.0, time stamp: 0x564ea97e
Faulting module name: KERNELBASE.dll, version: 6.1.7601.19045, time stamp: 0x56258f05
Exception code: 0xe0434352
Fault offset: 0x0000c42d
Faulting process id: 0xb64
Faulting application start time: 0x01d131c68bdc0db0
Faulting application path: c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: cb600c61-9db9-11e5-abfc-005056c00008
и
Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
at System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)
at System.Windows.Forms.Control.BeginInvoke(System.Delegate, System.Object[])
at System.Windows.Forms.WindowsFormsSynchronizationContext.Post(System.Threading.SendOrPostCallback, System.Object)
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.PostAction(System.Object)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.AwaitTaskContinuation+<>c.<ThrowAsyncIfNecessary>b__18_0(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Эти проекты VB и C# Windows Forms проекты. Это не происходит с проектами на C++.
Насколько я могу судить, компоненты всегда построены правильно и исключение происходит при закрытии визуальной студии. Я изменил наш скрипт, чтобы игнорировать эту конкретную ошибку, но это не похоже на отличное решение.
Может кто-нибудь предложить, как исправить эту проблему?
0xE0434352 - код исключения для управляемых исключений, может быть любым. Эта трассировка стека * очень * общая, может быть ничего, кроме надстроек, всегда находится в верхней части списка. Вместо этого вы должны использовать msbuild.exe. –
Спасибо @HansPassant. Есть ли удобный способ создания проекта визуальной студии в заданной конфигурации с использованием MSBuild? –
захватить свалку аварии. запустите ** procdump -ma i C: \ localdumps **, чтобы зарегистрировать procdump (https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx) как отладчик post mortem. Когда вы получаете новый сбой, dmp записывается в C: \ localdumps. Откройте этот dmp с помощью Windbg (часть инструментов отладки из SDK Windows: https://dev.windows.com/en-us/downloads/windows-10-sdk) и запустите **! Anal -v **. Возможно, это поможет вам. – magicandre1981