Visual Studio الوظيفة الإضافية تعطل مع ظهور رسالة خطأ "تارجيتينفوكاتيونيكسسيبشن"

الأعراض

عند تشغيل الوظيفة الإضافية أو تكامل الحزمة، يجوز إنهاء Microsoft Visual Studio عام 2013 بشكل غير متوقع باستثناء لم تتم معالجته من نوع System.Reflection.TargetInvocationException.

في سجل "أحداث التطبيق"، ستشاهد "خطأ تطبيق" مشابه للنص:

اسم التطبيق المسببة: devenv.exe، الإصدار: 12.0.21005.1، الطابع الزمني: 0x524fcb34
اسم الوحدة النمطية المسببة للخطأ: KERNELBASE.dll، الإصدار: 6.1.7601.18229، الطابع الزمني: 0x51fb10c6
رمز الاستثناء: 0xe0434352
إزاحة خطأ: 0x0000812f
معرف العملية المسببة للخطأ: 0xe3c
وقت بدء التطبيق المسببة للخطأ: 0x01cf0b21c6346ea8
مسار التطبيق المسببة للخطأ: 12.0\Common7\IDE\devenv.exe C:\Program مايكروسوفت Visual Studio
مسار الوحدة النمطية المسببة للخطأ: C:\Windows\system32\KERNELBASE.dll

ويعقب ذلك حدث مع وقت التشغيل.NET كمصدر مشابه للنص:

التطبيق: devenv.exe
إصدار إطار العمل: v4.0.30319
الوصف: تم إنهاء العملية سبب استثناء غير معالج.
معلومات الاستثناء: System.Reflection.TargetInvocationException
مكدس الذاكرة المؤقتة:
في System.RuntimeMethodHandle.InvokeMethod (System.Object منطقية []، System.Signature، System.Object)
في System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object، [] System.Object، System.Object[])
في System.Delegate.DynamicInvokeImpl(System.Object[])
في System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate، System.Object، Int32)
في MS. Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object System.Delegate System.Object، Int32،، System.Delegate)
في System.Windows.Threading.DispatcherOperation.InvokeImpl()
في System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
في System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext، System.Threading.ContextCallback، System.Object، منطقية)
في System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext، System.Threading.ContextCallback، System.Object، منطقية)
في System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext، System.Threading.ContextCallback، System.Object)
في System.Windows.Threading.DispatcherOperation.Invoke()
في System.Windows.Threading.Dispatcher.ProcessQueue()
في System.Windows.Threading.Dispatcher.WndProcHook (IntPtr Int32 IntPtr، IntPtr،، ByRef منطقية)
في MS. Win32.HwndWrapper.WndProc (IntPtr Int32 IntPtr، IntPtr،، ByRef منطقية)
في MS. Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
في System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate، System.Object، Int32)
في MS. Internal.Threading.ExceptionFilterHelper.TryCatchWhen (System.Object System.Delegate System.Object، Int32،، System.Delegate)
في System.Windows.Threading.Dispatcher.LegacyInvokeImpl (System.Windows.Threading.DispatcherPriority، System.TimeSpan، System.Delegate، System.Object، Int32)
في MS. Win32.HwndSubclass.SubclassWndProc (IntPtr Int32، IntPtr، IntPtr)

السبب

تحدث هذه المشكلة لأن رمز تغيير في Visual Studio IDE في عام 2013 ويؤثر على وثائق غير أسماء المسار الصحيح كما تحليله بواسطة فئة.NET System.IO.File. Visual Studio قد طرح System.ArgumentException عند فتح هذه المستندات التي يكون bubbled أعلى من خلال بيئة تطوير متكاملة تارجيتينفوكاتيونيكسسيبشن.

الحل

يمكنك تجنب أو حل المشكلة عن طريق التأكد من أن أسماء المستندات الخاصة بك أسماء الملفات Win32 صالح.

تم إصلاح هذه المشكلة في Visual Studio 2 تحديث 2013 والإصدارات اللاحقة من Visual Studio.

مزيد من المعلومات

يلي مكدس الاستدعاءات مثال من تارجيتينفوكاتيونيكسسيبشن. هذا من ملف تفريغ عملية استولت على استثناء لم تتم معالجته وعرضها في مصحح الأخطاء وينددبج استخدام ملحقات SOS لعرض مكدسات الذاكرة المؤقتة الاستثناء المدارة:


نوع الاستثناء CLR: System.Reflection.TargetInvocationException
"وقد تم طرح استثناء بواسطة هدف استدعاء."
خطأ: تعذر إيجاد ملف رمز.  مفترضة إلى تصدير الرموز ل C:\Windows\system32\KERNELBASE.dll-
eax=0027eb88 ebx=00000005 ecx=00000005 edx=00000000 esi=0027ec48 edi=00000001
eip 7528812f esp = = تشهد زيادة طفيفة 0027eb88 = 0027ebd8 iopl = 0 nv عن الصناعات الاستخراجية رر نيوزيلندي يعمل بالتيار المتردد pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200216
KERNELBASE!RaiseException+0x54:
اترك c9 7528812f
0:000 >! clr sos لوادبي
0:000> !sos.PrintException
كائن الاستثناء: 136eb7f8
نوع الاستثناء: System.Reflection.TargetInvocationException
الرسالة: تم طرح استثناء بواسطة هدف استدعاء.
InnerException: System.ArgumentException استخدام! 136e9f10 PrintException لمعرفة المزيد.
يوجد تتبع مكدس (إنشاء):
دالة حزمة IP
00000000 00000001 mscorlib_ni! System.RuntimeMethodHandle.InvokeMethod (System.Object منطقية []، System.Signature، System.Object) + 0x2
0033BEC8 60D99BC1 mscorlib_ni! System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object، [] System.Object، System.Object[])+0xc1
    0033BEEC 60D904B6 mscorlib_ni!System.Delegate.DynamicInvokeImpl(System.Object[])+0x76
    0033BF00 6079C5BD WindowsBase_ni!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
    0033BF64 6079EE4C WindowsBase_ni!System.Windows.Threading.DispatcherOperation.InvokeImpl()+0xac
    0033BF9C 6079ED88 WindowsBase_ni!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)+0x38
    0033BFA4 60E14157 mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0xa7
    0033C010 60E14096 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x16
    0033C024 60E14051 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x41
    0033C03C 6079EC9B WindowsBase_ni!System.Windows.Threading.DispatcherOperation.Invoke()+0x5b
    0033C074 6079B21B WindowsBase_ni!System.Windows.Threading.Dispatcher.ProcessQueue()+0x16b
0033C0B8 6079B3DA WindowsBase_ni! 0x5a + System.Windows.Threading.Dispatcher.WndProcHook (IntPtr Int32 IntPtr، IntPtr،، ByRef منطقية)
0033 WindowsBase_ni 104 6079C75B C! MS. 0x9b + Win32.HwndWrapper.WndProc (IntPtr Int32 IntPtr، IntPtr،، ByRef منطقية)
    0033C140 6079C6AB WindowsBase_ni!MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)+0x6b
    0033C150 6079C562 WindowsBase_ni!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)+0x52
    0033C170 6079C49A WindowsBase_ni!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)+0x3a
    0033C1B4 6079AABE WindowsBase_ni!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)+0x10e
0033 WindowsBase_ni 208 6079BFF1 C! MS. 0xf1 + Win32.HwndSubclass.SubclassWndProc (IntPtr Int32، IntPtr، IntPtr)
00000000 00000001 System_Windows_Forms_ni! 0x2 + System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop (IntPtr Int32، Int32)
System_Windows_Forms_ni!System.Windows.Forms.ComponentManagerProxy.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop 5C35DFC7 0033C4D8 (IntPtr Int32، Int32) + 0 × 27
    0033C4F0 5BBBF8D1 System_Windows_Forms_ni!System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)+0x155
    0033C540 5BBBF742 System_Windows_Forms_ni!System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)+0x4a
    0033C56C 5BB67004 System_Windows_Forms_ni!System.Windows.Forms.Application.DoEvents()+0x18
    0033C574 0682B972 MyAddin!Initialize()+0x6fa

ستاكتراسيسترينج: < بلا >
HResult: 80131604

يظهر InnerException يرمي استثناء الأولى:

0:000> !PrintException 136e9f10
كائن الاستثناء: 136e9f10
نوع الاستثناء: System.ArgumentException
الرسالة: أحرف غير قانونية في المسار.
InnerException: < بلا >
يوجد تتبع مكدس (إنشاء):
دالة حزمة IP
    0033BA18 617FFD07 mscorlib_ni!System.IO.Path.CheckInvalidPathChars(System.String, Boolean)+0xa68db7
    0033BA28 60E05936 mscorlib_ni!System.IO.Path.GetExtension(System.String)+0x16
    0033BA40 6D60F8E7 Microsoft_VisualStudio_Shell_UI_Internal_ni!Microsoft.VisualStudio.Services.VsImageService.GetIconForFileEx(System.String, Microsoft.VisualStudio.Shell.Interop.__VSUIDATAFORMAT, Microsoft.VisualStudio.Shell.Interop.__VSIconSource ByRef)+0x3f
    0033BA64 6D60F88C Microsoft_VisualStudio_Shell_UI_Internal_ni!Microsoft.VisualStudio.Services.VsImageService.GetIconForFileEx(System.String, Microsoft.VisualStudio.Shell.Interop.__VSUIDATAFORMAT, UInt32 ByRef)+0x14
    0033BA74 16D5ABD8 Microsoft_VisualStudio_Platform_WindowManagement_ni!Microsoft.VisualStudio.Platform.WindowManagement.UtilityMethods.GetDocumentTabImage(System.String, Microsoft.VisualStudio.Shell.Interop.__TABIMAGEFLAGS ByRef)+0x38
    0033BA90 6DE8F8F6 Microsoft_VisualStudio_Platform_WindowManagement_ni!Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.UpdateDocumentIcon()+0x131e2a

ستاكتراسيسترينج: < بلا >
HResult: 80070057

أحد الأسباب المعروفة لذلك يكون تضمين علامات الاقتباس في اسم المستند. مثال التعليمات البرمجية C# الذي يوضح الاستثناء الداخلي كما يلي:

static void Main(string[] args) { string path = null; path = @"A09F9925-32BC-47E1-9DC0-1F71C64E9A6E@SAMPLE.""ADEFUSR0"""; string extension = System.IO.Path.GetExtension(path); }
هذا الرمز سيتم طرح System.ArgumentException استدعاء جيتيكستينسيون.
خصائص

رقم الموضوع: 2923556 - آخر مراجعة: 22‏/01‏/2017 - المراجعة: 1

تعليقات