El complemento de Visual Studio se bloquea con un mensaje de error "TargetInvocationException"

Seleccione idioma Seleccione idioma
Id. de artículo: 2923556 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Cuando se ejecuta un complemento o un paquete de integración, Microsoft Visual Studio 2013 puede terminar inesperadamente con una excepción no controlada del tipo System.Reflection.TargetInvocationException.

En el registro de sucesos de la aplicación, verá un Error con un texto similar de la aplicación:

Nombre de la aplicación con errores: devenv.exe, versión: 12.0.21005.1, marca de tiempo: 0x524fcb34
Nombre del módulo con errores: KERNELBASE.dll, versión: 6.1.7601.18229, marca de tiempo: 0x51fb10c6
Código de excepción: 0xe0434352
Desplazamiento: 0x0000812f
Id. de proceso con errores: 0xe3c
Con errores de tiempo de inicio de la aplicación: 0x01cf0b21c6346ea8
Ruta de la aplicación con errores: de C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
Ruta del módulo con errores: C:\Windows\system32\KERNELBASE.dll

Esto es seguido byan evento con .NET Runtime como la withtext de origen similar a:

Aplicación: devenv.exe
Versión de .NET Framework: v4.0.30319
Descripción: El proceso finalizó debido a una excepción no controlada.
Información de excepciones: System.Reflection.TargetInvocationException
Pila:
en System.RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean)
en System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object, System.Object [], System.Object[])
en System.Delegate.DynamicInvokeImpl(System.Object[])
en System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32)
en MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)
en System.Windows.Threading.DispatcherOperation.InvokeImpl()
en System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
en System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
en System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
en System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
en System.Windows.Threading.DispatcherOperation.Invoke()
en System.Windows.Threading.Dispatcher.ProcessQueue()
en System.Windows.Threading.Dispatcher.WndProcHook (IntPtr, Int32, IntPtr, IntPtr, ByRef booleano)
en MS.Win32.HwndWrapper.WndProc (IntPtr, Int32, IntPtr, IntPtr, ByRef booleano)
en MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32)
en MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)
en System.Windows.Threading.Dispatcher.LegacyInvokeImpl (System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
en MS.Win32.HwndSubclass.SubclassWndProc (IntPtr, Int32, IntPtr, IntPtr)

Causa

Deun se produce debido a un código de cambio en el IDE de Visual Studio en 2013 y afecta a los documentos que no son nombres de ruta de acceso válida como por parte de la clase System.IO.File. NET. Visual Studio puede producir una excepción System.ArgumentException al abrir estos documentos que asciende a través del IDE como TargetInvocationException.

Solución

Puede evitar o solucionar el problema asegurándose de que los nombres de los documentos son los nombres de archivo Win32 válidos.

Este problema se ha solucionado en Visual Studio 2013 Update 2 y versiones posteriores de Visual Studio.

Más información

A continuación se muestra una pila de llamadas de ejemplo de TargetInvocationException. Se trata de un archivo de volcado del proceso reflejado en la excepción no controlada y se muestra en el depurador de WindDdbg con las extensiones de SOS para mostrar las pilas de llamadas de excepción administrada:


Tipo de excepción de CLR: System.Reflection.TargetInvocationException
"Ha sido excepción en el destino de la invocación."
ERROR: No se encontró el archivo de símbolos. El valor predeterminado para exportar símbolos para C:\Windows\system32\KERNELBASE.dll-
EAX = 0027eb88 ebx = 00000005 ecx = edx 00000005 = esi 00000000 = 0027ec48 edi = 00000001
EIP = esp 7528812f = ebp 0027eb88 = 0027ebd8 iopl = 0 nv a nz CA pe de IE pl CN
CS = 001b ss = es 0023 ds = 0023 = gs 0023 fs = 003b = efl 0000 = 00200216
KERNELBASE!RaiseException + 0 x 54:
licencia de c9 7528812f
0:000 >! loadby sos clr
0:000 >! sos.PrintException
Objeto de excepción: 136eb7f8
Tipo de excepción: System.Reflection.TargetInvocationException
Mensaje: Se ha producido la excepción en el destino de la invocación.
InnerException: System.ArgumentException, uso!136e9f10 de PrintException para ver más.
StackTrace (generado):
Función IP del SP
00000001 00000000 mscorlib_ni!System.RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean) + 0 x 2
Mscorlib_ni de 60D99BC1 de 0033BEC8!System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object, System.Object [], System.Object[])+0xc1
Mscorlib_ni de 60D904B6 de 0033BEEC!System.Delegate.DynamicInvokeImpl (System.Object []) + 0x76
WindowsBase_ni de 6079C5BD de 0033BF00!System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32) + 0xad
0033BF20 6079C49A WindowsBase_ni! MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)+0x3a
WindowsBase_ni de 6079EE4C de 0033BF64!(De System.Windows.Threading.DispatcherOperation.InvokeImpl) + 0xac
WindowsBase_ni de 6079ED88 de 0033BF9C!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext (System.Object) + 0x38
Mscorlib_ni de 60E14157 de 0033BFA4!System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) + 0xa7
0033 C 010 60E14096 mscorlib_ni!System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) + 0 x 2
0033 C 024 60E14051 mscorlib_ni!System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x41
WindowsBase_ni de 6079EC9B de 0033C03C!(De System.Windows.Threading.DispatcherOperation.Invoke) + 0x5b
0033 074 de C 6079B21B WindowsBase_ni!(De System.Windows.Threading.Dispatcher.ProcessQueue) + 0x16b
WindowsBase_ni de 6079B3DA de 0033C0B8!System.Windows.Threading.Dispatcher.WndProcHook (IntPtr, Int32, IntPtr, IntPtr, ByRef booleano) + 0x5a
WindowsBase_ni de 6079C75B de 104 C 0033! MS.Win32.HwndWrapper.WndProc (IntPtr, Int32, IntPtr, IntPtr, ByRef booleano) + 0x9b
WindowsBase_ni de 6079C6AB 140 C 0033! MS.Win32.HwndSubclass.DispatcherCallbackOperation (System.Object) + 0x6b
6079C de 0033C 150 562 WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32) + 0 x 52
WindowsBase_ni de 6079C49A de 170 C 0033! MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)+0x3a
WindowsBase_ni de 6079AABE de 0033C1B4!System.Windows.Threading.Dispatcher.LegacyInvokeImpl (System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) + 0x10e
WindowsBase_ni de 6079BFF1 208 C 0033! MS.Win32.HwndSubclass.SubclassWndProc (IntPtr, Int32, IntPtr, IntPtr) + 0xf1
00000001 00000000 System_Windows_Forms_ni!System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop (IntPtr, Int32, Int32) + 0 x 2
0033C4D8 5C35DFC7 System_Windows_Forms_ni!System.Windows.Forms.ComponentManagerProxy.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (IntPtr, Int32, Int32) + 0 x 27
System_Windows_Forms_ni de 5BBBF8D1 de 0033C4F0!System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner (Int32, System.Windows.Forms.ApplicationContext)+0x155
0033 C 540 5BBBF742 System_Windows_Forms_ni!System.Windows.Forms.Application+ThreadContext.RunMessageLoop (Int32, System.Windows.Forms.ApplicationContext)+0x4a
System_Windows_Forms_ni de 5BB67004 de 0033C56C!(De System.Windows.Forms.Application.DoEvents) + 0 x 18
0033 C 0682B972 574 MyAddin!Inicializar () + 0x6fa

StackTraceString:<none>
HResult: 80131604

La propiedad InnerException muestra el lanzamiento inicial de excepción:

0:000 >!PrintException 136e9f10
Objeto de excepción: 136e9f10
Tipo de excepción: System.ArgumentException
Mensaje: Caracteres no válidos en la ruta de acceso.
InnerException:<none>
StackTrace (generado):</none></none>Br / &gt; función de IP del SP
Mscorlib_ni de 617FFD07 de 0033BA18!System.IO.Path.CheckInvalidPathChars (System.String, Boolean) + 0xa68db7
Mscorlib_ni de 60E05936 de 0033BA28!System.IO.Path.GetExtension (System.String) + 0 x 2
Microsoft_VisualStudio_Shell_UI_Internal_ni de 6D60F8E7 de 0033BA40!Microsoft.VisualStudio.Services.VsImageService.GetIconForFileEx (System.String, Microsoft.VisualStudio.Shell.Interop.__VSUIDATAFORMAT, Microsoft.VisualStudio.Shell.Interop.__VSIconSource ByRef) + 0x3f
Microsoft_VisualStudio_Shell_UI_Internal_ni de 6D60F88C de 0033BA64!Microsoft.VisualStudio.Services.VsImageService.GetIconForFileEx (System.String, Microsoft.VisualStudio.Shell.Interop.__VSUIDATAFORMAT, UInt32 ByRef) + 0 x 14
Microsoft_VisualStudio_Platform_WindowManagement_ni de 16D5ABD8 de 0033BA74!Microsoft.VisualStudio.Platform.WindowManagement.UtilityMethods.GetDocumentTabImage (System.String, ByRef Microsoft.VisualStudio.Shell.Interop.__TABIMAGEFLAGS) + 0x38
Microsoft_VisualStudio_Platform_WindowManagement_ni de 6DE8F8F6 de 0033BA90!(De Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.UpdateDocumentIcon) + 0x131e2a

StackTraceString:<none>
HResult: 80070057

Una causa conocida es tener incrustados entre comillas en el nombre del documento. C# código de ejemplo que se muestra la excepción interna es la siguiente:</none>
static void Main(string[] args) { string path = null; path = @"A09F9925-32BC-47E1-9DC0-1F71C64E9A6E@SAMPLE.""ADEFUSR0"""; string extension = System.IO.Path.GetExtension(path); }
Este código producirá la excepción System.ArgumentException en la llamada GetExtension.

Propiedades

Id. de artículo: 2923556 - Última revisión: viernes, 27 de junio de 2014 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Visual Studio Premium 2013
  • Microsoft Visual Studio Professional 2013
  • Microsoft Visual Studio Ultimate 2013
Palabras clave: 
kbmt KB2923556 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2923556

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com